Preludium:
To wyzwanie różni się od „innego programu dla kotów”.
Jest dosłownie mnóstwo różnych zwrotów akcji, dlaczego nie mogę mieć własnych ludzi?
Unikalne rzeczy:
- Nie odczytuje bezpośredniego wejścia do wyjścia.
- Manipuluje sznurkiem w sposób, który z pewnością nie jest prostym kotem.
Wyzwanie:
Biorąc pod uwagę 3 dane wejściowe (lub jedno wejście, rozdzielone w dowolny sposób) otrzymujemy trzy obiekty (słowa), które zastąpimy piórami, ananasami i jabłkami w tekście i wynikach.
Format wyjściowy ( według tekstów znalezionych na AZLyrics ):
Zakładając (zamień wartości na nawiasy):
- A, B, C ze słowami wejściowymi (np.
apple
) - UA, UB, UC ze słowami wejściowymi z dużymi pierwszymi literami (jeśli już nie dużymi) (np.
Apple
) - FUA, FUB, FUC z odpowiednio pierwszymi dużymi literami: (np.
A
) - a / an z artykułem dotyczącym pierwszej litery samogłoski / spółgłoski (np.
an
)
[FUA] - [FUB] - [FUC] - [FUA] Mam [a / an] [A], mam [a / an] [C]. Uh! [UC] - [UA]! Mam [a / an] [A], mam [a / an] [B]. Uh! [UB] - [UA]! [UC] - [UA], [UB] - [UA]. Uh! [UA] - [UB] - [UC] - [UA]. [UA] - [UB] - [UC] - [UA]!
Przypadek testowy:
Test z pen
, pineapple
i apple
:
P-P-A-P
I have a pen, I have an apple.
Uh! Apple-Pen!
I have a pen, I have a pineapple.
Uh! Pineapple-Pen!
Apple-Pen, Pineapple-Pen.
Uh! Pen-Pineapple-Apple-Pen.
Pen-Pineapple-Apple-Pen!
Zasady:
- Jeśli wprowadzanie danych nie zaczyna się od litery, załóż spółgłoskę (
a
) i pierwszą wielką literą pierwszy znak (np.123 -> 1
). - code-golf , wygrywa najmniejsza liczba postaci!
Odpowiedzi:
JavaScript (ES6),
217...187183 bajtówPobiera dane wejściowe jako tablicę 3 ciągów znaków, takich jak
['pen', 'pineapple', 'apple']
.Przykłady
Pokaż fragment kodu
źródło
'golf', 'puzzle', 'code'
IMHOPerl 6 , 165 bajtów
Stosuje to samo podejście, co odpowiedź JS Arnaulda .
źródło
Partia,
494490 bajtówObjaśnienie:
:h
podprogram obsługuje linięI have a %, I have a %.
W%
S są podstawione z odpowiednimi parametrami polecenia linię i łańcuchya a
,a e
,a i
,a o
ia u
są zastąpić równoważnąan
wersji.:u
Podprogram obsługuje pozostałe linie; pobiera słowa parametrów i wielkie litery wszystkich pierwszych liter. (Przed spacją jest umieszczana dodatkowa spacja, aby pierwsze słowo było pisane dużymi literami, ale jest usuwane na wyjściu.) Aby obsłużyć słowa po-
s, przekazywane są dodatkowe spacje, ale są również usuwane na wyjściu.:u
Podprogram służy również do pierwszej linii, chociaż wydobywania inicjały jest niewygodne.źródło
Python 3.6 -
351287286 bajtówNie ma w tym nic wyjątkowego poza skorzystaniem z nowej funkcji formatowania literałów łańcuchowych.
Uwaga - W tej wersji wprowadzono
3.6
formatowanie literału łańcuchowego . Dlatego nie będzie działać we wcześniejszych wersjach.źródło
"
pozwoli zaoszczędzić tylko 2 bajty, ale\n
doda 12 bajtów.Lua,
615607 bajtówZaoszczędzono 8 bajtów dzięki [anonimowemu użytkownikowi]
Uff, długi. Wypróbuj tutaj.
Jestem w 100% pewien, że można to skrócić. Jestem po prostu leniwy
Zasadniczo używa wielu manipulacji ciągami. Istnieją 3 główne funkcje i jedna zmienna:
d(string)
: zwraca if jeśli string jest samogłoską (AEIOUaeiou
), w przeciwnym razie zwraca az(string)
: zwraca pierwszą literę dużymi literamiz(s) .. s:sub(2)
: zwraca całe słowo, ale pierwsza litera jest dużaf
: słowo końcowe (w zmiennej, aby zapisać niektóre bajty). W twoim przypadku testowym byłobyPen-Pineapple-Apple-Pen
.Wejście:
pen
,pineapple
,apple
Wynik:
źródło
Python 2 , 283 bajtów
Wypróbuj online!
źródło