Ich habe diesen seltsamen Text, in dem vewols ratetod zu sein scheinen:
Ich bin ein schlecht geschriebener Text. Ein verrückter Typ spielte mit der Ordnung der Vokale. Bitte reparieren Sie mich!
Ich würde also ein Pragrom brauchen, das die vewols (und den 'y'-Buchstaben, wie es scheint) zurücksetzen kann, so dass der Text wieder raadeble ist.
Ouy kann die Lungaega von ouyr chieco privedod ouy meka ein cempleto pragrom (also nicht nur ein finctoun) wählen. Das Yntre kann ein Unpit Feild, ein Text Feli oder das Cammond Leni sein. Der Ausgang mya olsa vyra as ouy leki.
Natürlich werde ich schlechte Texte vereiteln. Es gibt keine Vulea in einem Pragrom, die Mekas-Texte nicht enden können. Aber Sie können Ihre Cemmonts und Qeistouns in ratetod-Texten schreiben, wenn Sie möchten.
Klarstellungen
- Ihr Programm muss nur ASCII-Text verarbeiten.
- Für die Zwecke dieser Frage sind die folgenden Zeichen Vokale:
aeiouy
- Die Positionen der Vokale in jedem Wort sollten gedreht werden. Es gibt eine gewisse Flexibilität bei der Entscheidung, was als Wort zu qualifizieren ist: Die Mindestanforderung besteht darin, dass zwei durch ein Leerzeichen getrennte Zeichen in unterschiedlichen Wörtern vorkommen und dass zwei alphabetische Zeichen (
a-zA-Z
), die nur durch alphabetische Zeichen getrennt sind, im selben Wort vorkommen. - Die gewünschte Drehrichtung ist den nachfolgenden Testfällen zu entnehmen.
Testfälle
Eingabe: I'm a badly written text. Some lunatic guy played with the order of vowels. Please fix me !
Ausgabe:I'm a bydla wrettin text. Semo lanituc gyu plyead with the erdor of vewols. Plaese fix me !
Eingabe: AeiOuy
Ausgabe:EioUya
Eingabe: Hyphenated-word
Ausgabe: Hephanetyd-word
oderHephanetod-wyrd
aeiouAEIOU
in ASCII / Basic Latin entsprechen; die Codepunkte plus alle anderen in Basic Latin und Latin-1 Supplement, bei denen diese Grundzeichen mit einem diakritischen Zeichen kombiniert sind) sollte die Frage explizit sein.Antworten:
GolfScript,
686757 ZeichenDie Eingabe muss auf STDIN erfolgen. Beispiel ( online ):
quelle
Rubin,
9190 ZeichenKaffeeskript, 148 Zeichen
Keine ussimtoans, außer dass "holf-cerract" ein Wort ist und nicht mein sulitoon.
Prüfung:
quelle
$&
anstelle desgsub()
y-Parameters des zweiten Blocks verwenden. 2) ersparen Sie 1 Zeichen durch Verwenden von?Z
anstelle von'Z'
.$&
kann nicht verwendet werden, da es geändert wird, bevor ich es verwende.z=$'[r]
ändert es. In Bezug auf?Z
- danke, ich habe diese Syntax total vergessen.Haskell, 159 Zeichen
Es war nicht ganz so kurz, wie ich es mir erhofft hatte, aber ich beschloss es trotzdem zu posten:
Ungolfed-Version:
Dies ist ein schönes Beispiel dafür, wie man bei einer langsamen Auswertung coole Tricks machen kann. In
rotateVowels
wird jedes Mal , wenn ein neuer Vokal gefunden wird , wird es weitergegeben nach links, während er mit dem von rechts kommenden ersetzen. Dieser Teil der Ausgabe aus der Falte wird als Eingabe zurückgeführt, sodass der Vokal ganz links der Ersatz für den Vokal ganz rechts wird.quelle
Python 2 , 172 Bytes
Probieren Sie es online!
quelle