Возможно ли избежать возиться с повторяющимися элементами массива, когда вы возитесь с первым?Как предотвратить повторение повторяющихся элементов массива?
Рассмотрим следующий пример:
def rot13(str)
alphabet = ("a".."z").to_a
letters = str.split("").each{|x| x.downcase! }
letters.map! do |let|
alphabet[(alphabet.index(let) + 13) % alphabet.length]
end
#werd = letters.join("")
letters.map.with_index do |char,index|
str.each_char.with_index do |c,idx|
if str[idx].upcase! == nil
letters.at(idx).upcase!
end
end
end
#werd
letters
end
rot13("ANdrea")
Это просто Ceaser Cypher фиксируется на 13 букв старше. Прямо до тех пор, пока мы не ударим по дубликату "a"
s, который после кода запускается в дубликат "n"
. Как и здесь, петли upcase!
замыкают в letters
все, что было на этих индексах в исходной строке, и мне нужны только те индексы, которые будут капитализированы. Как это изолировать?