hke*_*n27 4 ruby string count enumerable sequence
在计算序列中的字符时需要有关此代码的帮助.
这就是我要的:
word("aaabbcbbaaa") == [["a", 3], ["b", 2], ["c", 1], ["b", 2], ["a", 3]]
word("aaaaaaaaaa") == [["a", 10]]
word("") == []
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
def word(str)
words=str.split("")
count = Hash.new(0)
words.map {|char| count[char] +=1 }
return count
end
Run Code Online (Sandbox Code Playgroud)
我得到了一句话("aaabbcbbaaa")=> [["a",6],["b",4],["c",1]],这不是我想要的.我想计算每个序列.我更喜欢没有正则表达式的解决方案.谢谢.
按字符分割字符串,然后按字符串分组,然后计算字符串中的字符数:
def word str
str
.chars
.chunk{ |e| e }
.map{|(e,ar)| [e, ar.length] }
end
p word "aaabbcbbaaa"
p word("aaaaaaaaaa")
p word ""
Run Code Online (Sandbox Code Playgroud)
结果:
[["a", 3], ["b", 2], ["c", 1], ["b", 2], ["a", 3]]
[["a", 10]]
[]
Run Code Online (Sandbox Code Playgroud)