Mam dziwny tekst, w którym vewols wydają się być ratetod:
Jestem źle napisanym tekstem. Jakiś szalony facet grał w kolejności samogłosek. Proszę mnie naprawić!
Potrzebowałbym więc pragromu, który może cofnąć vevols (i literę „y”, jak się wydaje), aby tekst był raadeble agian.
Ouy can choeso the lungaega of ouyr chieco privedod ouy meka a cempleto pragrom (więc nie tylko finctoun). Yntre może być nieprzyzwoitą cechą, tekstowym feli lub cammond leni. The uutpot mya olsa vyra as ouy leki.
O cuerso będę kowadł yna pragrom uutpitong złe teksty. W pragromie nie ma vulei, której teksty Mekas nie mogą się powtórzyć. Ale ouy może wreti ouyr cemmonts i qeistouns w tekstach ratetod, jeśli chcesz.
Wyjaśnienia
- Twój program jest wymagany tylko do obsługi tekstu ASCII.
- Do celów tego pytania następującymi znakami są samogłoski:
aeiouy
- Pozycje samogłosek w każdym słowie powinny zostać obrócone. Istnieje pewna elastyczność w podejmowaniu decyzji, co kwalifikuje się jako słowo: minimalnym wymogiem jest, aby dwa znaki oddzielone spacją były w różnych słowach, a dwa znaki alfabetyczne (
a-zA-Z
) oddzielone tylko znakami alfabetycznymi znajdowały się w tym samym słowie. - Pożądany kierunek obrotu należy wywnioskować z poniższych przypadków testowych.
Przypadki testowe
Wejście: I'm a badly written text. Some lunatic guy played with the order of vowels. Please fix me !
Wyjście:I'm a bydla wrettin text. Semo lanituc gyu plyead with the erdor of vewols. Plaese fix me !
Wejście: AeiOuy
Wyjście:EioUya
Wejście: Hyphenated-word
Wyjście: Hephanetyd-word
lubHephanetod-wyrd
aeiouAEIOU
w ASCII / Basic Latin; te punkty kodowe oraz wszelkie inne w Basic Latin i Latin-1 Supplement, które mają te podstawowe znaki połączone ze znakiem diakrytycznym) pytanie powinno być jednoznaczne.Odpowiedzi:
GolfScript,
686757 znakówDane wejściowe należy podać na STDIN. Przykład ( online ):
źródło
Ruby,
9190 znakówCoffeescript, 148 znaków
Żadnych usstoan, oprócz tego, że „holf-cerract” to słowo, a nie mój sulitoon.
Test:
źródło
$&
zamiastgsub()
parametru y drugiego bloku; 2) oszczędzić 1 postać, używając?Z
zamiast'Z'
.$&
Nie można użyć @manatwork, ponieważ został zmieniony przed użyciem.z=$'[r]
zmienia to. Odnośnie?Z
- dzięki, całkowicie zapomniałem o tej składni.Haskell, 159 znaków
Nie skończyło się tak krótko, jak się spodziewałem, ale mimo to postanowiłem opublikować:
Wersja bez golfa:
To dobry przykład tego, jak leniwa ocena pozwala robić fajne sztuczki. Za
rotateVowels
każdym razem, gdy zostanie znaleziona nowa samogłoska, jest ona przekazywana w lewo, zastępując ją tą, która pochodzi z prawej. Ta część danych wyjściowych ze zgięcia jest zwracana jako dane wejściowe, tak że samogłoska znajdująca się najbardziej po lewej stronie zastępuje prawą.źródło
Python 2 , 172 bajty
Wypróbuj online!
źródło