Да, тут дело в кодировке, но также и в твоей программе. Если ord('я') (последняя буква русского алфавита) =1103, а у тебя размер массива = 256, то понятно, что никакого символа под индексом [1103] не будет. Попробуй увеличить размер массивов до 1280 (константа ALPHABETSIZE), и строку
поменять на
.
У меня так работает

как минимум.