ロゼッタストーンチャレンジの目標は、できるだけ多くの言語でソリューションを作成することです。あなたのプログラミング多言語主義を自慢して見せてください!
チャレンジ
ランレングスエンコーディングを最初に実行しましたが、単一文字のランのみを考慮しました。もちろん、複数の文字の実行を考慮すると、さらに節約できる場合があります。
例を挙げましょうaaaxyzxyzxyzdddd
。これはに圧縮できます3a3{xyz}4d
。あなたの仕事は、大文字と小文字を区別する文字とスペースの文字列を与えられ、複数文字の実行に対してランレングスエンコーディングを使用して最適に圧縮する関数のプログラムを書くことです。
関数の引数STDINまたはARGVを介して入力を受け取り、結果を返すか、STDOUTに出力できます。
実行は入れ子にしてaaabbbaaabbb
はいけません。したがって3a3b3a3b
、ではなく 、でなければなりません2{3a3b}
。つまり、文字列は1回のパスでエンコード(またはデコード)する必要があります。
最適な圧縮の結果
ランレングスエンコーディングの素朴なアプリケーションが次善の結果をもたらす可能性があるいくつかの例:
abab
「圧縮」してはならない2{ab}
aaaabcdeabcde
圧縮されてはならない4abcdeabcde
が、3a2{abcde}
その代わり。
2つの最適なバージョン(例:aa
and 2a
またはabcabc
andおよび2{abc}
)がある場合、どちらの結果でも問題ありません。
例
Input Output
aa aa -or- 2a
aaaaaAAAAA 5a5A
ababa ababa
abababa a3{ba} -or- 3{ab}a
foo foo bar 2{foo }bar
aaaabcdeabcde 3a2{abcde}
xYzxYz xYzxYz -or- 2{xYz}
abcabcdefcdef abcab2{cdef}
pppqqqpppqqq 3p3q3p3q
pppqqqpppqqqpppqqq 3{pppqqq}
得点
各言語は、最短のエントリーを書ける人に関して個別のコンテストですが、全体的な勝者は、これらのサブコンペティションのほとんどを勝つ人です。これは、多くの珍しい言語で答える人が有利になることを意味します。コードゴルフは、言語に複数の解決策がある場合のタイブレーカーです。プログラムが最も短い人がその言語の功績を認められます。
同点の場合、勝者は2番目に多く送信された人(以下同様)になります。
ルール、制限、注意事項
異なる提出物はすべて1つの回答に収めてください。
また、わずかに異なる言語の方言で基本的に同じ答えをするshenanigansはありません。私はどのような提出物が十分に異なっているかについての裁判官になります。
現在のリーダーボード
このセクションは定期的に更新され、言語の数とそれぞれの言語の主導者が表示されます。
- C#(265)— edc65
- JavaScript(206)— edc65
- Python(214)—意志
- VB.NET(346)— edc65
現在のユーザーランキング
- edc65(3)
- 意志(1)