-1
我解決這個string scramble problem上coderbyte.com:字符串加擾Coderbyte
[H] AVE功能
StringScramble(str1,str2)
採取傳遞兩個參數,並返回字符串"true"
如果str1
字符的部分可以被重新排列以匹配str2
,否則返回字符串"false"
。例如:如果str1
爲"rkqodlw"
和str2
爲"world"
,則輸出應返回"true"
。標點和符號不會與參數一起輸入。
這裏是我的完整代碼:
def StringScramble(str1,str2)
#convert string to array
#create an empty string
#double iterate and add string if item is satisfies condition
#compare
str1= str1.split("")
str2= str2.split("")
str = ""
for i in 0...str2.length
for j in 0...str1.length
if str2[i]==str1[j]
str = str + str1[j]
str1.delete_at(j)
puts "#{str1}"
end
end
end
puts str
if str == str2.join("")
true
else
false
end
end
它適用於那些沒有大量重複的字母在str1
簡單的情況,但對於其他一些情況下,如
str1 = "heloooolwrdlla" #"coodrebtqqkye"
str2= "helloworld" #"coderbyte"
StringScramble(str1,str2)
我得到hellllooword
的結果。這個問題源於條件str2[i]==str1[j]
,我試圖通過刪除已經使用過的元素來解決這個問題,但是它繼續添加重複的元素。找到要添加到str
中的相應字符後,嵌套迭代不會停止。我怎樣才能解決這個問題?
感謝您的解決方案。我正在尋找一種方法來有效地重新安排'str1'以匹配'str2',並且如果'str1'和'str2'相等,它將返回true,否則返回false。 – Guy 2015-03-26 02:38:09
這與問題提出的問題不同。 – sawa 2015-03-26 03:25:31