目標是取一個字符串並返回最常見的字母及其數量。對於字符串'hello'
,它將返回['l', 2]
。爲什麼`String#delete`在我的ruby代碼中返回錯誤?
我寫了以下內容:
def most_common_letter(string)
list = []
bigcount = 0
while 0 < string.length
count = 0
for i in 0..string.length
if string[0] == string[i]
count += 1
end
end
if count > bigcount
bigcount = count
list = (string[0])
string.delete[string[0]]
end
end
return [list,bigcount]
end
我得到以下錯誤:
wrong number of arguments (0 for 1+)
(repl):14:in `delete'
(repl):14:in `most_common_letter'
(repl):5:in `initialize'
請幫助我瞭解我在做什麼毛病delete
聲明,或還有什麼導致這返回一個錯誤。
我以另一種方式完成解決方案,但我認爲這將工作得很好。
善良! 我很粗心。謝謝你指出。你看到任何有無限循環的地方嗎?我沒有得到理想的結果。控制檯不會返回任何信息 – hac13
我剛剛將刪除語句移到了第三個「結束」的下方,但它似乎仍然在循環中 – hac13
我不能夠感謝你。這很像魔術!謝謝你幫助我理解 – hac13