バックグラウンド
言語学者の友達が、さまざまな言語でいくつかの簡単な会話の断片を録音して分析しました。彼らはまったく不在なので、各スニペットの言語を忘れてしまいました。文の構造を分析し、不可能な場合を除外するプログラムを作成して、彼らを助けなければなりません。
入力
入力は、主語、動詞、オブジェクトSVO
を表す文字を含む空でない文字列です。言語学者が分析した会話スニペットを表します。
出力
あなたの仕事は、文字列を文に分割し、各文の.
後にピリオドを入力することです。文には、動詞、または動詞と主語、または動詞、主語とオブジェクトのいずれかが含まれます。ただし、元の言語で使用されている単語の順序はわかりません。英語ではsubject-verb-objectを使用しますが、ラテン語などの他の言語ではsubject-object-verbを使用します。実際、6つの順列はすべて自然言語で存在するため、それぞれをチェックする必要があります。
出力には、改行で区切られた文字列で、該当する各単語の順序、コロン:
、およびその順序に従って文に分割された入力文字列が含まれます。文字列がいくつかの語順で解析できない場合、対応する行は省略されます。行の順序は重要ではなく、少なくとも1つの語順を解析できることが保証されています。
例
入力を検討する
VSVOSV
VOS
注文、スニップは、以下のように解析することができVS.VOS.V.
、且つにSVO
順番、それは次のように解析できますV.SVO.SV.
。注文OSV
も機能し、完全な出力は
VOS:VS.VOS.V.
SVO:V.SVO.SV.
OSV:V.SV.OSV.
ルールとスコアリング
完全なプログラムまたは関数を作成できます。最も低いバイト数が優先され、標準の抜け穴は許可されません。正規表現とすべての組み込みが許可されています。
テストケース
Input:
V
Output:
VSO:V.
VOS:V.
SVO:V.
OVS:V.
SOV:V.
OSV:V.
Input:
SVV
Output:
SVO:SV.V.
SOV:SV.V.
OSV:SV.V.
Input:
VSVOV
Output:
SVO:V.SVO.V.
Input:
VSOVS
Output:
VSO:VSO.VS.
OVS:VS.OVS.
Input:
SVOSV
Output:
SVO:SVO.SV.
OSV:SV.OSV.
Input:
VSVOSV
Output:
VOS:VS.VOS.V.
SVO:V.SVO.SV.
OSV:V.SV.OSV.
Input:
VSVVSOVSV
Output:
VSO:VS.V.VSO.VS.V.
OVS:VS.V.VS.OVS.V.
SOV:V.SV.V.SOV.SV.
Input:
SVVSVSOVSVV
Output:
SOV:SV.V.SV.SOV.SV.V.
Input:
VSOVSVSOVSVVS
Output:
VSO:VSO.VS.VSO.VS.V.VS.
OVS:VS.OVS.VS.OVS.V.VS.
1時間前に文字列置換機能をJaptに実装する必要があるとわかっていました...
—
ETHproductions