我想创建一个anagram解算器。这是我的代码:
def permut(word)
for i in 1..$laenge
if i != $laenge
word[$laenge-i], word[$laenge-i-1] = word[$laenge-i-1], word[$laenge-i]
$output.push word
$y += 1
end
end
end
我不应该使用全局变量,for
中的get_input
- 循环会卡住,但它只是出于学习目的,我的重点只是在数组问题,我用rdebug调试它。
当我将混合字的值推送到数组时,它会覆盖它的所有值。我通过提供类似Array[y]
的索引并在每次执行y
循环时递增for
,或者仅使用Array.push
,然后使用单词作为字符串。
答案 0 :(得分:1)
你一遍又一遍地改变同一个字符串。
ar = []
word = "abc"
ar.push(word)
word[0], word[1] = word[1], word[0]
p ar # => ["bac"]
尝试在数组中保存变异字符串的副本:
ar.push(word.dup)