Пример #1
0
            public string Scramble(string initial)
            {
#if DEBUG
                Console.WriteLine();
                Console.WriteLine(initial);
                Console.WriteLine();
#endif

                var constructable = new ConstructableArray <char>(initial.ToCharArray());

                foreach (var operation in operations)
                {
#if DEBUG
                    Console.WriteLine(operation);
#endif
                    operation.Operate(constructable);
#if DEBUG
                    Console.WriteLine(new string(constructable.ConstructArray()));
                    Console.WriteLine();
#endif
                }

                return(new(constructable.ConstructArray()));
            }
Пример #2
0
            public string Unscramble(string scrambled)
            {
#if DEBUG
                Console.WriteLine();
                Console.WriteLine(scrambled);
                Console.WriteLine();
#endif

                var constructable = new ConstructableArray <char>(scrambled.ToCharArray());

                foreach (var operation in operations.Reverse())
                {
#if DEBUG
                    Console.WriteLine(operation);
#endif
                    operation.OperateReverse(constructable);
#if DEBUG
                    Console.WriteLine(new string(constructable.ConstructArray()));
                    Console.WriteLine();
#endif
                }

                return(new(constructable.ConstructArray()));
            }
Пример #3
0
 private KnotHasher(int[] inputLengths, int elementCount)
 {
     lengths = inputLengths;
     array   = new(elementCount);
     Reset();
 }