private void GetResult(string sentence, int[,] path, int current, int index, List <string> result, string word) { if (index == 0) { result.Add(sentence[index] + word); return; } if ("BS".Contains(HiddenMarkovModel.GetCurrentState(current))) { result.Add(sentence[index] + word); word = string.Empty; } else { word = sentence[index] + word; } GetResult(sentence, path, path[index, current], index - 1, result, word); }