Wierszyk: Jabłka i banany
Istnieje tradycyjna piosenka dla dzieci, która powtarza ten sam tekst w kółko, tylko za każdym razem, gdy każda samogłoska jest zastępowana losową samogłoską, ale stała w całej zwrotce.
Wyzwanie
Celem jest zaproponowanie najkrótszego kodu, który dokonuje takiej transformacji tekstu wejściowego.
Zasady
- Musisz wydrukować wierszyk tyle razy, ile jest w nim wyraźnych samogłosek.
- Każdy wydruk musi być oddzielony podziałem wiersza (kombinacja specyficzna dla platformy
\n
i\r
jest akceptowana). - W celu iteracji
i
zastąp każdą samogłoskęi
th odrębną samogłoską w tekście oryginalnym. - Tekst wejściowy to sekwencja drukowalnych znaków ASCII (zakres
[32, 126]
. - Dane wejściowe nie będą zawierać osadzonych podziałów linii.
- Należy zmieniać tylko znaki samogłosek, inne muszą być wyprowadzane dokładnie jako dane wejściowe.
- Liczą się tylko samogłoski: samogłoski nosowe, chociaż brzmią jak samogłoski (jak we francuskim „Tintin” ), nie mogą być traktowane jako pojedyncza samogłoska.
- Wielkość liter ma znaczenie dla danych wyjściowych, ale ma charakter pozycyjny (zastąpienie samogłoski pisanej wielkimi literami odbywa się za pomocą samogłoski zastępującej wielkie litery)
- Samogłoski wielkich liter nie różnią się od ich małych odpowiedników (tj.
a
<=>A
) - Kolejne samogłoski są zawsze rozpatrywane osobno (tzn.
Boat
Dają zarównoBoot
iBaat
) - Ponieważ litera
y
reprezentuje albo samogłoskę, albo rzeczownik spółgłoskowy (jak mówimy po angielsku), obsługa go jako samogłoski lub spółgłoski jest dozwolona, jednak odpowiedzi muszą wyraźnie określać, czy obsługująy
jako samogłoskę, czy nie.
Przykłady:
Witaj świecie
Hello world!
daje:
Helle werld!
Hollo world!
Fragment oryginalnego tekstu francuskiego (przetłumaczonego), y
traktowanego jako samogłoska:
An elephant that was rambling all gently in the woods...
daje:
An alaphant that was ramblang all gantla an tha waads...
En elephent thet wes rembleng ell gentle en the weeds...
In iliphint thit wis rimbling ill gintli in thi wiids...
Yn ylyphynt thyt wys rymblyng yll gyntly yn thy wyyds...
On olophont thot wos romblong oll gontlo on tho woods...
Zwróć uwagę na zachowanie na wiodącej samogłosce wielkich liter: wielkość liter jest utrzymywana na indeksie (reguły 8 i 9).
Przykład bezowocny
Dane wejściowe, które nie zawierają żadnej samogłoski, takie jak:
lgn@hst:~$ rm -rf ./* ~ /
nie może generować żadnego wyjścia ani pojedynczego podziału linii.
Wprowadzanie pojedynczej samogłoski
Dane wejściowe zawierające pojedynczą samogłoskę są wyprowadzane w niezmienionej postaci.
Dad sat at a car and saw a fat bat.
daje:
Dad sat at a car and saw a fat bat.
To jest golf golfowy , więc wygrywa najmniejszy kod bajtowy (tylko wieczna chwała PPCG)!
Rubinowy , 78 bajtów
Wypróbuj online!
Szybkie i naiwne podejście. Y nie jest uważane za samogłoskę.
źródło
bash, 96 bajtów
Dwa rozwiązania o równej długości:
Wypróbuj online!
Pobiera dane wejściowe jako argument wiersza poleceń i wysyła do STDOUT.
źródło
05AB1E (starsza wersja) , 19 bajtów
(Pośrednio) zapisany jeden bajt dzięki Kevinowi (drukowanie bezpośrednio w pętli zamiast łączenia, działa tylko w starszej wersji).
Wypróbuj online!
Przy użyciu przepisywania Elixir, 20 bajtów
Wypróbuj online! (bez
y
) | Wypróbuj online! (zy
,žM
zastąpienie przezžO
- to samo dotyczy starszej wersji)Jak to działa
źródło
y
powinno również używać6
zamiast5
, btw.y
wersję -vowel, przypadkowo skopiowałem niewłaściwy link TIO, kiedy odpowiedziałem: | ...i
kod. Twoja odpowiedź nie działa w przypadku danych wejściowych bez samogłosek. Oczekiwany jest pusty wynik, ale tak naprawdę sam drukuje dane wejściowe .. :(Japt v2.0a0
-R
,2422 bajtówTraktuje
y
jak samogłoskę. Zmień obu wystąpień\y
aby\v
traktować go jako spółgłoskę.Spróbuj
Wyjaśnienie
źródło
Galaretka ,
23 20 1817 bajtów-2 Dzięki Erikowi Outgolfer
Aby traktować
y
jako samogłoskę, zamień obac
s nay
s.Wypróbuj online!
W jaki sposób?
źródło
ż/
w parze jest toZ
, że dwie dyady w rzędzie, w której lewa nie jestZ
> _ <), nie jestem pewien, co się dzieje z moją sesją TIO, ale usunięcie redundancjið
nie działało; restart naprawiony.x€
→x
też, ale ty mnie ninja. : PCzerwony , 229 bajtów
Biorąc
y
za samogłoskęWypróbuj online!
Nieco bardziej czytelny:
źródło
R ,
138, 129 bajtówWypróbuj online!
y
nie jest uważana za samogłoskęźródło
Python,
129119112 bajtówWypróbuj online!
Nie leczyy jako samogłoska.
-7 bajtów dzięki @ Mr.Xcoder
źródło
JavaScript (Node.js) , 99 bajtów
Przysmakiy jako spółgłoska.
Wypróbuj online!
Skomentował
źródło
Java 10,
196188 bajtów-8 bajtów dzięki @ joH1 .
Bez
y
jako samogłoska do zapisywania bajtów.Wypróbuj online.
Wyjaśnienie:
źródło
v
w pętliPython 2 , 112 bajtów
Wypróbuj online!
Traktuje
y
jako spółgłoskę.źródło
Perl 6 , 64 bajtów
Wypróbuj online!
źródło
Java (OpenJDK 8) , 184 bajty
y jest samogłoską
Wypróbuj online!
źródło