当您弄乱第一个数组元素时,是否可以避免弄乱重复的数组元素?
考虑以下:
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")
这只是一个固定在 13 个字母以上的 Ceaser Cypher。直截了当,直到我们点击了重复的 s,在代码运行后"a"
它变成了重复的 s。"n"
就像这里一样,原始字符串中那些索引处upcase!
的所有内容中的循环都大写letters
,我只需要将这些索引大写。我如何隔离它?