Ejemplo n.º 1
0
        public static string Compress(string[] input)
        {
            var previous = new LimitedQueue <string>(16);
            var result   = input
                           .Select(target => GetCompressed(previous, target));

            return(string.Join("\n", result));
        }
Ejemplo n.º 2
0
        private static string GetCompressed(LimitedQueue <string> previous, string target)
        {
            if (previous.Count != 0)
            {
                return(previous
                       .Select((temp, i)
                               => CompressString(target, temp, previous.Count - i))
                       .Min(s => s)
                       .Value);
            }

            previous.Add(target);
            return(target);
        }