最近、スタックオーバーフローに関する質問がありました。OPは、文字の繰り返しが最も多い文字列内の単語を検索する関数を作成しようとしました。もちろん、数秒で1つ書くのは難しくありません。私は楽しみのために、できるだけ短い時間でJavascriptで1つ作成しました。しかし、私はコードゴルフの専門家ではないので、この単純なプログラムはどれだけ短くできるのでしょうか。
チャレンジ
一連の単語を取り込んで、最も多く繰り返される1文字の単語を返すか印刷するプログラムまたは関数を記述します。
ルール:
繰り返し1文字が最も多い単語を選択します(下の例を参照)
単語に繰り返し文字がない場合は、-1を返します。
2つの単語の繰り返し文字の最大数が同じである場合は、文字列の先頭に近い方の単語を選択します。
バイトでの最短の提出が優先されます。
入力
スペースで区切られた1つ以上の単語で構成される文字列を入力として受け取ります。入力は、STDIN(または最も近い代替手段)、コマンドラインパラメーター、または関数の引数から取得できます。
出力
出力をSTDOUTに出力して返します。
例
文字列を考えますaaabbb cccc
。これには2つの単語が含まれています:aaabbb
とcccc
。ワードはaaabbb
3持ちa
'sおよび3 b
' Sを、そしてcccc
4有しc
さん。したがって、で繰り返される文字の最大数aaabbb
は3で、最大cccc
は4です。単一の文字が繰り返される最大数の単語を選択するので、の出力はにaaabbb cccc
なりますcccc
。
その他のテストケース:
Today, is the greatest day ever! --> greatest
This is a great day --> -1
aaabbb cccc --> cccc
ever
aabb
は2文字が繰り返されていると思います。うaaaabb
4つの繰り返される文字(第二、第三、第四有すると考えられるa
、第二b
)、または2つの繰り返し文字(a
とがb
)。