目標は、文字列を取得して、最も一般的な文字をカウントとともに返すことです。文字列'hello'
の場合は、['l', 2]
を返します。Rubyコードで `String#delete`がエラーを返すのはなぜですか?
私は次のように書いている:
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
の文が間違ってやっているのか理解助けてください、または他に何でありますこれによりエラーが返されます。
私は別の方法で解決しましたが、これはうまくいくと思いました。
goodness! 私はとても不注意です。それを指摘していただきありがとうございます。無限ループがある部分は見えますか?私は望ましい結果を得ていない。コンソールは何も返さない – hac13
私は最後の3番目の 'end'の下にdeleteステートメントを移動しましたが、それはループを維持するように見えます。 – hac13
十分にありがとうございます。それは魔法のように機能しました!私に理解を助けてくれてありがとう – hac13