我正在尝试编写代码来确定字符串中字母的连续频率.
例如:
"aabbcbb" => ["a",2],["b",2],["c", 1], ["b", 2]
Run Code Online (Sandbox Code Playgroud)
我的代码给了我第一个字母频率,但没有继续下一个.
def encrypt(str)
array = []
count = 0
str.each_char do |letter|
if array.empty?
array << letter
count += 1
elsif array.last == letter
count += 1
else
return [array, count]
array = []
end
end
end
Run Code Online (Sandbox Code Playgroud)
p "aabbcbb".chars.chunk{|c| c}.map{|c, a| [c, a.size]}
# => [["a", 2], ["b", 2], ["c", 1], ["b", 2]]
Run Code Online (Sandbox Code Playgroud)
"aabbcbb".chars.slice_when(&:!=).map{|a| [a.first, a.length]}
# => [["a", 2], ["b", 2], ["c", 1], ["b", 2]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1033 次 |
| 最近记录: |