2011-06-24 5 views
0

誰もが知っている、指定された文字列の中で最も回繰り返され、どのように文字をカウントすると、連続して与えられた文字列の中で最も回繰り返されます。私は非常に短い答えが必要です。 EXについてカウント文字が連続して

"xxyyydduuummm" が返されます 'にyと、U、M'

答えて

6
"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"] 

改善ムラデンJablanovićによって示唆されました。

"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"] 
+0

感謝沢。しかし、それは私のために働いていない。私はルビー1.8.6 –

+0

わずかな変動にレール1.2.1バージョン使用しています(。(/()\ 2 *)/)。 ' "xxyyydduuummm" .scanをGROUP_BY {| R、C | r.length} .max.last.map(&:last) ' –

+0

申し訳ありません!それは...また、働いていないのです "xxyyydduuummm" .scan(/(()\ 2 *)/。)GROUP_BY {|。R、C | r.length} .max.last.map(&:最後の) 例外TypeError:間違った引数の型の記号(予想PROC) これは私のエラーです。..未定義のメソッド 'GROUP_BY'。私のルビーバージョン1.8.6 –