Hintergrund
Ihr Freund, ein Linguist, hat einige einfache Konversationsausschnitte in verschiedenen Sprachen aufgezeichnet und analysiert. Da sie ziemlich abwesend sind, haben sie vergessen, in welcher Sprache sich jedes Snippet befand. Sie müssen ihnen helfen, indem Sie ein Programm erstellen, das die Satzstrukturen analysiert und unmögliche Fälle ausschließt.
Eingang
Ihre Eingabe ist eine nicht leere Zeichenfolge, die die Zeichen enthält SVO
, die für Subjekt , Verb und Objekt stehen . Es handelt sich um einen vom Sprachwissenschaftler analysierten Konversationsausschnitt.
Ausgabe
Ihre Aufgabe ist es, die Zeichenfolge in Sätze zu zerlegen und .
nach jedem Satz einen Punkt einzugeben . Ein Satz enthält entweder ein Verb ODER ein Verb und ein Subjekt ODER ein Verb, ein Subjekt und ein Objekt. Sie wissen jedoch nicht, welche Wortreihenfolge die Originalsprache verwendet. Englisch verwendet Subjekt-Verb-Objekt , aber andere Sprachen, wie Latein, verwenden Subjekt-Objekt-Verb . Tatsächlich existieren alle sechs Permutationen in natürlichen Sprachen, daher müssen Sie jede von ihnen überprüfen.
Ihre Ausgabe muss in einer durch Zeilenumbrüche getrennten Zeichenfolge jede zutreffende Wortreihenfolge, einen Doppelpunkt :
und die Eingabezeichenfolge enthalten, die gemäß dieser Reihenfolge in Sätze unterteilt sind. Wenn die Zeichenfolge nicht in einer Wortreihenfolge analysiert werden kann, wird die entsprechende Zeile weggelassen. Die Reihenfolge der Zeilen spielt keine Rolle, und es wird garantiert, dass mindestens eine Wortreihenfolge analysiert werden kann.
Beispiel
Betrachten Sie die Eingabe
VSVOSV
In der VOS
Reihenfolge kann der Ausschnitt als analysiert werden VS.VOS.V.
, und in der SVO
Reihenfolge kann er als analysiert werden V.SVO.SV.
. Die Reihenfolge OSV
funktioniert auch und die volle Ausgabe ist
VOS:VS.VOS.V.
SVO:V.SVO.SV.
OSV:V.SV.OSV.
Regeln und Wertung
Sie können ein vollständiges Programm oder eine Funktion schreiben. Die niedrigste Byteanzahl gewinnt und Standardschlupflöcher sind nicht zulässig. Reguläre Ausdrücke und alle integrierten Funktionen sind zulässig.
Testfälle
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.
Antworten:
Perl 5 - 104 Bytes
quelle
JavaScript (ES7), 172 Byte
Könnte wahrscheinlich weiter Golf gespielt werden. Vorschläge willkommen!
quelle