目的
、印刷可能なASCII文字の文字列を受け取りルーチン書くよ、と同じ文字を含む文字列を返すのを複数回ありませんので、二部分文字列が表示されていることを並べ替え、。プログラムは、最新のコンピューターで1分以内にすべてのベンチマーク文字列(下記参照)を処理する必要があります。また、有効な30文字の文字列を1分以内に処理する最低スコアの回答に対して50 repの特別ボーナスを授与します。
たとえば、inputを指定するMississippi
と、有効な出力はissiMspiips
(2文字の部分文字列が2回表示されない)、無効な出力はipMsispiiss
(部分文字列is
が2回表示されるため)になります。
ルーチンの形式は次のとおりです。
- 完全なプログラムの読み出し
stdin
(または同等品)またはコマンドライン、及びに出力stdout
(または同等品) - 単一の文字列引数を受け取り、文字列を返す関数
入力文字列は常に少なくとも1つの有効な出力を許可すると想定できます。
チャレンジ
ルーチンは、改行で区切られた5行以上のコードで構成する必要があります。空行(空白のみを含む行を含む)はすべてのコンテキストで無視され、合計行数にはカウントされません。
ソースコードの2行を入れ替えると、致命的なエラーが発生する必要があります。「致命的なエラー」とは、次の条件のいずれかを指します。
- ソースコードはコンパイルに失敗し、コンパイラ/インタープリターは致命的なエラーを宣言します
- ルーチンは、実行時致命的エラーまたは未処理の実行時例外で中止されます
- ルーチンは、起こりうるエラーメッセージやスタックダンプを除き、いかなる種類の出力も生成しない突然の異常なプログラム終了を強制されます。
または、改行文字を含まない連続したコードブロックを行の代わりに使用できます。これらのブロックは、ソースコードがコンパイル/解釈される前に改行が削除されることを理解して、ソースファイルのそれぞれの行に表示する必要があります。
たとえば、コード
aaaa
bbbb
cccc
に凝縮するだろう
aaaabbbbcccc
評価される前。
このモードでは、致命的なエラー状態は任意の2つのコードブロックのスワップに適用されます(したがって、改行が削除される前のソースコードの行のスワップに適用されます)。したがって、上記の例のルーチンaaaaccccbbbb
、bbbbaaaacccc
およびccccbbbbaaaa
すべてのいずれかコンパイル、または実行時に、致命的なエラーを生成しなければなりません。
この代替モードを使用した送信では、その使用を宣言する必要があります。
得点
してみましょうn個もソースファイル内の非空のテキスト行の数を、とのn ≥5.レッツは、cはに含まれるバイト数も最も長いテキスト行任意の末尾の改行を数えていない、あなたのソースファイル内(バイト長によります)。
提出のスコアはc(n + 10)で与えられます。
最も低いスコアの提出物が勝者です。
幸運を祈ります。;)
ベンチマーク文字列
Abracadabra Alacazam
Is Miss. Mississauga Missing?
Ask Alaska's Alaskans
GGGGAAAATTTTCCCCgggaaatttccc
A Man A Plan A Canal Panama
Mspiisiipss
は繰り返しのみであるため、有効ですか?ii
Mississippi
CooliO
、出力oOoCli
ですか?