Wskazówka:
Aby uwzględnić częstość wystąpień poszczególnych liter, zmodyfikujemy ideę wektora charakterystycznego z algorytmów A, B zaprezentowanych w zadaniach 2 i 3. Utworzymy tablice liczb całkowitych Ile_x[1..10] i Ile_y[1..10]. Docelowo Ile_x[i] dla ∈ [1,10] ma być równe liczbie wystąpień litery o kodzie i w słowie X, podobnie Ile_y[i] dla ∈ [1,10] ma być równe liczbie wystąpień litery o kodzie i w słowie Y. Poniżej prezentujemy fragment pseudokodu dający taki rezultat:

dla = 1,2,…,10 wykonuj
Ile_x[i] ← 0,
Ile_y[i] ← 0
dxdlugosc(X)
dla = 1,2,…,dx wykonuj
lit X[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

Przy tablicach Ile_x i Ile_y wypełnionych zgodnie z powyższym opisem sprawdzenie równoważności X i Y sprowadza się do zweryfikowania, czy Ile_x[i] = Ile_y[i] dla każdego ∈ [1,10]:

dla = 1,2,…,10 wykonuj
jeżeli Ile_x[i] ≠ Ile_y[i]
zwróć 0 i zakończ
zwróć 1
Powrót do pytań