Anagramy na SPOJ – analiza i wytłumaczenie działania kodu

0

Witam analizuje kod do zadania ze spoja anagram i natknąłem sie na taką linijke kodu

for(int i = 0; i < anagram.length(); i++)
    tab[anagram[i] - 'a']++;

Czy jest mi ktoś w stanie wyłumaczyć dlaczego program bez -'a' popostu nie działa ? I czy jest jakaś sensowna zamiana owej linijki kodu ? Pozdrawiam

0

Może zacznij od tego, aby powiedzieć co ma się stać.

1

Ten kod najwyraźniej zakłada, że napis zawiera tylko małe litery.
W tab jest gromadzona informacja o liczbie wystąpień każdej litery.
Jeśli liczba wystąpień liter dla dwóch napisów jest taka sama to są to anagramy.
Wartość 'a' jest dość duża, a tablice w C/C++ są indeksowane zawsze od zera, więc należy przesunąć indeks by nie marnować tablicy.

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