Символ счета последовательно повторяется наибольшее количество раз в данной строке - PullRequest
0 голосов
/ 24 июня 2011

Кто-нибудь знает, как посчитать символ, последовательно повторяемый наибольшее количество раз в данной строке.Мне нужен очень краткий ответ.

Например: "xxyyydduuummm" вернет 'y, u, m'

1 Ответ

6 голосов
/ 24 июня 2011
"xxyyydduuummm".scan(/((.)\2*)/).group_by{|s, c| s.length}.sort_by(&:first).last.last.map(&:last) (Ruby 1.9)
"xxyyydduuummm".scan(/((.)\2*)/).group_by{|s, c| s.length}.sort_by{|k, v| k}.last.last.map{|s, c| c} (Ruby 1.8.7)
# => ["y", "u", "m"]

Улучшение Предложено Младеном Яблановичем.

"xxyyydduuummm".scan(/((.)\2*)/).group_by{|s, c| s.length}.max.last.map(&:last) (Ruby 1.9)
"xxyyydduuummm".scan(/((.)\2*)/).group_by{|s, c| s.length}.max.last.map{|s, c| c} (Ruby 1.8.7)
# => ["y", "u", "m"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...