Test na powtórzenia słów

0

Mam 1000słów i chciałbym sprawdzić czy jakieś nie występuje 2x. Jak rozwiązać takie sprawdzanie? Nie chciałbym ładować do zmiennej 1 słowa i n-tego słowa i porównywać. Czy istnieje jakiś szybszy sposób? Co jeśli mam 2 tablice takich słów.

0

Przez zliczanie. Wrzucaj słowa do HashMapy po prostu.

0

Można też wrzucać do zbioru (Set), a na końcu porównać wielkość tablicy i zbioru.

0

Na pewno słowa masz w pliku. Jeśli chcesz usunąć duplikaty to skorzystaj z jest to bardzo szybki sposób na sprawdzanie duplikatów :
http://delphi.about.com/od/delphitips2009/qt/remove-duplicat.htm

A jeśli chcesz zobaczyć np co się duplikuje a później kasuje (Llistbox zamień na TStringList) to :

var
i,j : integer;
begin
for i := 0 to Listbox1.Items.Count - 2 do
begin
  j := i + 1 ;
  while j <  Listbox1.Items.Count do
  begin
    if  Listbox1.Items.Strings[i] =  Listbox1.Items.Strings[j] then 
      begin
       Showmessage('Słowo : '+ Listbox1.Items.Strings[i]+#13+'powtórzyło się i zostanie skasowane !!!');
       Listbox1.Items.Delete(j)
      end else
      Inc(j);
    end;
   Caption := inttostr(Listbox1.Items.Count);
  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1