Есть поле Memo1 в котором содержится SpinEdit1 строк. В каждой строке 1 слово. Нужно найти похожие слова и удалить.
Т.е. в поле Memo1 попали слова: Карась
Утра
Яблоко
Яблоко
Зелень
Щи
Карась
А после алгоритма, список должен отсеять повторяющиеся имена и выглядеть так:
Карась
Утра
Яблоко
Зелень
Щи
Что-то немогу понять какая ошибка в алгоритме:
Code
For i:=1 to Memo1.Lines.Count do
begin
k:=0;
s:=Memo1.Lines[i];
For j:=1 to Memo1.Lines.Count do
begin
c:=Memo1.Lines[j];
If k>1 then Memo1.Lines.Delete(j);
If s=c then k:=k+1;
end;
end;
end;
,где
s - string, строки которую сравнивают
c - string, которая сравнивается с s
k - integer, переменная считающая количество повторяющихся строк
i,j - integer, счетчики
Приведенный алгоритм почему-то не работает при большом количестве строк (например 1000).
Интересует работающий алгоритм(!) и максимально эффективный по времени.
Помогите, если кто знает или сталкивался с подобной проблемой.