Odpowiedź:
Przykładowe rozwiązanie 1:
dla = 1,2,…,10 wykonuj
Ile_x[i] ← 0,
Ile_y[i] ← 0
dxdlugosc(X)
dla = 1,2,…,dx wykonuj
litX[i]
Ile_x[kod(lit)] ← Ile_x[kod(lit)] + 1
dydlugosc(Y)
dla = 1,2,…,dy wykonuj
litY[i]
Ile_y[kod(lit)] = Ile_y[kod(lit)] + 1
dla = 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 = 1,2,…,10 wykonuj
Ile[i] ← 0,
dxdlugosc(X)
dla = 1,2,…,dx wykonuj
litX[i]
Ile[kod(lit)] ← Ile[kod(lit)] + 1
dydlugosc(Y)
dla = 1,2,…,dy wykonuj
litY[i]
Ile[kod(lit)] = Ile[kod(lit)] – 1
dla= 1,2,…,10 wykonuj
jeżeli Ile_x[i] ≠ 0
zwróć 0 i zakończ
zwróć 1
Powrót do pytań