Przykładowe rozwiązanie 1:
dla i = 1,2,…,10 wykonuj
Ile_x[i] ← 0,
Ile_y[i] ← 0
dx ← dlugosc(X)
dla i = 1,2,…,dx wykonuj
lit ← X[i]
Ile_x[kod(lit)] ← Ile_x[kod(lit)] + 1
dy ← dlugosc(Y)
dla i = 1,2,…,dy wykonuj
lit ← Y[i]
Ile_y[kod(lit)] = Ile_y[kod(lit)] + 1
dla i = 1,2,…,10 wykonuj
jeżeli Ile_x[i] ≠ Ile_y[i]
zwróć 0 i zakończ
zwróć 1
Alternatywne rozwiązanie polegać może na przykład na tym, że dla kolejnych liter (A, B,
…,I, J) algorytm wyznacza liczbę ich wystąpień w X i liczbę ich wystąpień w Y, a następnie
zwraca –1, gdy są one różne. W rozwiązaniu takim nie potrzebujemy dodatkowych tablic.
Można też to zrobić w jednej tablicy. W pętli dla słowa X zwiększamy liczniki wystąpienia
liter, zaś w pętli dla słowa Y je zmniejszamy. Jeśli w tablicy są same zera, to słowa są równoważne:
Przykładowe rozwiązanie 2:
dla i = 1,2,…,10 wykonuj
Ile[i] ← 0,
dx ← dlugosc(X)
dla i = 1,2,…,dx wykonuj
lit ← X[i]
Ile[kod(lit)] ← Ile[kod(lit)] + 1
dy ← dlugosc(Y)
dla i = 1,2,…,dy wykonuj
lit ← Y[i]
Ile[kod(lit)] = Ile[kod(lit)] – 1
dla i = 1,2,…,10 wykonuj
jeżeli Ile_x[i] ≠ 0
zwróć 0 i zakończ
zwróć 1