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())); }
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())); }
private KnotHasher(int[] inputLengths, int elementCount) { lengths = inputLengths; array = new(elementCount); Reset(); }