я работаю над этой программной задачей из Coderbyte:массива find_index возвращения ноля, даже если значение явно в массиве
Использования языка Ruby, есть функция LetterChanges (ул) принимают параметр ул, передаваемый и измените его, используя следующий алгоритм. Замените каждую букву в строке буквой, следующей за ней в алфавите (т.е. c станет d, z станет a). Затем загладьте каждую гласную в этой новой строке (a, e, i, o, u) и, наконец, верните эту модифицированную строку.
Мой код выглядит следующим образом:
def LetterChanges(str)
alphabet = ('a'..'z').to_a
result = ""
str = str.each_char do |c|
idx = alphabet.find_index(c)
if idx != nil
idx == 25 ? idx = 0 : idx += 1
c = alphabet[idx]
c.upcase! if ["a","e","i","o","u"].include?(c)
end
result << c
end
return result
end
Когда я запускаю код LetterChanges ("coderbyte") возвращает 'dpEesczUe'. Я провел некоторое тестирование, и реализованный alphabet.find_index («e») вернул нуль. Однако, когда я запускаю код LetterChanges («eeeee»), он возвращает «fffff», как и ожидалось. Должно быть, что-то мне не хватает, я просто не могу понять, что!
Полностью пропустил это, спасибо! – aiven
Рад помочь. Представьте себе, что было кажущееся очень странно :) – mikej