ご存知のように、リメリックは、AABBA韻を踏むスキームとアナペスティックメーター(それが何であれ)を備えた、短い5行の、時折みだらな詩です:
リムリックの不条理書く
言葉でライン1とライン5つの韻を
そして、あなたが数えてきたと同じように
彼らが第二と韻
四行目は、第三と韻必要があります
入力テキストが入力されると、入力が有効なライムリックであると考えられるかどうかを出力する最短のプログラムを作成する必要があります。入力は、オプションでコマンドラインまたは標準入力を介して行うことができ、出力は、オプションで単純な「Y」/「N」または信頼スコアのいずれかです。
正しいlimerickの別の例を次に示します。
目
が色と大きさに関して独特だった若い女性がいまし
た彼女がそれらを大きく開いたとき、
人々はすべて背を向け、
そして驚きで出発しました
しかし、以下の詩は明らかにされていない、それは韻しないため、リメリック:
スズメバチによって腕に刺された聖蜂の老人がいました。
「痛いですか?」
「いいえ、そうではありません
。スズメバチではなかったことをとてもうれしく思います。」
メーターがすべて間違っているので、これもそうではありません。
ベルリンの男が
自分のいる部屋を嫌っていた
と聞いた。
彼がため息をついて言う理由について尋ねたとき
、「昨夜、くまのくびきを勝ち取った祝賀会の周りに少数の愚か者がいた。ワールドカップ、そして彼らは本当に騒々しかったので、私は騒のために眠れませんでした。」
手がかり
入力がリメリックかどうかを判断するために使用できる手がかりのいくつかを次に示します。
- リムリックの長さは常に5行です。
- 1行目、2行目、5行目は韻を踏む必要があります。
- 3行目と4行目は韻を踏む必要があります。
- 1行目、2行目、5行目は約3x3 = 9の音節を持ち、3行目と4行目は2x3 = 6の音節を持っています
最初のものを除いて、これらのどれも厳格なものではないことに注意してください。100%の正確性評価は不可能です。
ルール
エントリは、少なくとも例1から3を決定論的な方法で正しく分類する必要があります。
あなたはされている(具体的に参照このコンテストのために設計されたコースプログラミング言語のを除いて、ご希望の任意のプログラミング言語を使用することができ、ここで)。
プログラミング言語の標準製品以外のライブラリを使用することはできません。
このファイル(CMU Sphinxの発音辞書)が現在のディレクトリの「c」というファイルにあると仮定することができます。
テスト入力用にハードコーディングすることは許可されていません。プログラムは一般的なlimerickカテゴライザーでなければなりません。
入力は特別なフォーマット(例のように)なしでASCIIであると仮定することができますが、プログラムは中断によって混同されるべきではありません。
ボーナス
以下のボーナスが利用可能です:
- あなたのプログラムは結果をライムリックとして出力しますか?150文字の長さのボーナスを差し引きます!
- あなたのプログラムはソネットも正しく識別していますか?150文字の余分な長さのボーナスを差し引きます!
- あなたのプログラムは、ソネットで使用されたときに、その結果をソネットとして出力しますか?追加の長さのボーナスを100文字引きます!
最後に...
あなたがあなたに値すると思うボーナスを言及し、あなたのスコアに到達するためにあなたのキャラクターの数からボーナスを引くことを忘れないでください。これはコードゴルフコンテストです。最短のエントリー(つまり、最低スコアのエントリー)が勝ちます。
より多くの(陽性)テストデータが必要な場合は、OEDILFまたはBook of Nonsenseをご覧ください。負のテストデータは簡単に作成できる必要があります。
幸運を!
code-challenge
ボーナスのためです。タグの説明をお読みください