public static List<ArrayList> areAnagrams(string[] input)
{
List<ArrayList> anagramList = new List<ArrayList>();
List<string> str = input.ToList();
for (int i = 0; i < input.Length; i++)
{
input[i] = input[i].ToLower();
input[i] = input[i].Replace(" ", "");
}
for (int i = 0; i < input.Length; i++)
{
ArrayList list = new ArrayList();
list.Add(input[i]);
char[] string1 = input[i].ToCharArray();
Array.Sort(string1);
for (int j = i + 1; j < input.Length; j++)
{
char[] string2 = input[j].ToCharArray();
Array.Sort(string2);
if (string1.Length == string2.Length)
{
bool isAnagram = true;
for (int k = 0; k < string1.Length; k++)
{
if (string1[k] != string2[k])
{
isAnagram = false;
break;
}
}
if (isAnagram)
{
list.Add(input[j]);
//input[i].Remove(i);
}
}
}
anagramList.Add(list);
}
return anagramList;
}
string[] str = new string[] { "pear", "dirty room", "amleth", "reap", "tinsel", "hamlet", "dormitory", "listen", "silent" }
массив строк в анаграмма массив строк
результат должен быть:
[ {"pear","reap"}, {"dirty room","dormitory"}, {"amleth","hamlet"}, {"tinsel","listen","silent"} ]
Проблема в том, им не в состоянии удалить слова, которые уже вставлены в списке
Awsome спасибо :) – Faisal