我的目标是找到给定字符串中具有最多重复字母数的单词.例如,"aabcc ddeeteefef iijjfff"会返回,"ddeeteefef"因为"e"在这个单词中重复了五次,这比所有其他重复的字符多.
到目前为止,这是我得到的,但它有很多问题,并不完整:
def LetterCountI(str)
s = str.split(" ")
i = 0
result = []
t = s[i].scan(/((.)\2+)/).map(&:max)
u = t.max { |a, b| a.length <=> b.length }
return u.split(//).count
end
Run Code Online (Sandbox Code Playgroud)
我只能找到连续模式的代码; 如果模式被中断(例如"aabaaa",它会计数三次而不是五次).
我可以想象有一种简单的方法可以做到这一点,而不是使用许多变量和状态.
我只想获得散列列表中每个键的最高值
例如:
[{1=>19.4}, {1=>12.4}, {2=>29.4}, {3=>12.4}, {2=>39.4}, {2=>59.4}]
Run Code Online (Sandbox Code Playgroud)
结果
[{1=>19.4}, {3=>12.4}, {2=>59.4}]
Run Code Online (Sandbox Code Playgroud)