한 번에 한 문자열을 다른 한 글자로 변경하는 메서드를 작성하려고합니다. 그러나 나는 루비에서 문자열 변수를 배열에 푸시하면 문자열 변수의 주소가 아닌 문자열을 푸는 것으로 나타났습니다.문자열을 루비의 배열로 저장
def mutate_my_strings(s1,s2)
#your code here
str1 = s1.to_s
str2 = s2.chars
ret = []
puts str1
ret.push(str1)
s1.chars.each_with_index do |q,idx|
str1[idx] = str2.shift
ret.push(str1)
end
return ret.join("\n")
end
mutate_my_strings("bubble gum", "turtle ham")
이 출력이 열거는 STR1하지만 둔다 문자열 "풍선 껌", "거북 햄"로 턴 아웃을 수정하는 것을 보여준다이 배열 그렇지 않다. 추가
bubble gum
"tubble gum"
"tubble gum"
"turble gum"
"turtle gum"
"turtle gum"
"turtle gum"
"turtle gum"
"turtle hum"
"turtle ham"
"turtle ham"
=> "turtle ham\nturtle ham\nturtle ham\nturtle ham\nturtle ham\nturtle ham\nturtle ham\nturtle ham\nturtle ham\nturtle ham\nturtle ham"
: 여기
그리고
문제에 더 우아한 솔루션입니다. 내 버전은 매우 유사했지만 너무 늦었습니다. –@ EricDuminil 네, 보았습니다. 좋은 걸 보았습니다.) –
내가 생각하지 못한 것을 가르쳐 주신 것을 놀라게했습니다. –