Exemple #1
0
        public static bool TestForBWT()
        {
            bool   result     = true;
            string testString = "каркаркар";
            BWTransformedString transformedString = BWTransformation(testString);

            if (transformedString.transformedString != "кккрррааа")
            {
                result = false;
            }
            if (testString != ReverseBWT(transformedString))
            {
                result = false;
            }
            return(result);
        }
Exemple #2
0
        public static string ReverseBWT(BWTransformedString transformedString)
        {
            var    numerationArray = GetNumeration(transformedString.transformedString);
            string resultStr       = "";
            int    currentIndex    = transformedString.lastSymbolPosition;

            for (int i = 0; i < transformedString.transformedString.Length; i++)
            {
                resultStr   += transformedString.transformedString[currentIndex];
                currentIndex = numerationArray[currentIndex];
            }
            var charArrayOfString = resultStr.ToCharArray();

            Array.Reverse(charArrayOfString);
            return(new string(charArrayOfString));
        }