Данный алгоритм не выводит все подстроки в слове
Проблема заключается в том, что алгоритм не выводит все строки в слове. Если у нас есть строка с удаленными префиксом и суффиксом, то должно сперва вывести одинарные буквы, потом подстроки из двух, из трех и так далее. Прошу подсказать что не так.На картинке показано результаты работы метода.
public List<string> GetSubstring(List<string> words)
{
HashSet<string> SetSubstrings = new HashSet<string>();
string removed = "";
foreach (var word in words)
{
SetSubstrings.Add("Подстроки слова " + word);
removed = word.Remove(0, 1);
removed = removed.Remove(removed.Length - 1);
for (int i = 0; i < removed.Length; i++)
{
string substring = removed.Substring(i);
for (int j = 0; j < removed.Length-i; j++)
{
SetSubstrings.Add(substring);
substring = substring.Substring(1);
}
}
removed = "";
}
return SetSubstrings.ToList();
}
Источник: Stack Overflow на русском