public string Decrypt(string text) { int countOfCharsInOriginalText = 0; SuffixAutomaton automaton = new SuffixAutomaton(text); double[] numbersFrequency = new double[COUNT_OF_TWO_DIGIT_NUMBERS]; for (int i = 0; i < COUNT_OF_TWO_DIGIT_NUMBERS; i++) { numbersFrequency[i] = automaton.CountSubstringOccurences((i + 10).ToString()); countOfCharsInOriginalText += (int)numbersFrequency[i]; } for (int i = 0; i < COUNT_OF_TWO_DIGIT_NUMBERS; i++) { numbersFrequency[i] /= countOfCharsInOriginalText; if (numbersFrequency[i] > 0) { } } }
public bool IsPlainText(string text) { FillProhibitedCombinationsArray(); SuffixAutomaton automaton = new SuffixAutomaton(text); if (automaton.IsBuilted) { for (int i = 0; i < _prohibitedCombinations.Length; i++) { if (automaton.CountSubstringOccurences(_prohibitedCombinations[i]) != 0) { return(false); } } } else { throw new Exception("Автомат не был построен"); } return(true); }