Auftakt:
Diese Herausforderung unterscheidet sich von "einem anderen Katzenprogramm".
Es gibt buchstäblich jede Menge verschiedene Wendungen. Warum kann ich meine eigenen nicht haben, Leute?
Einzigartige Dinge:
- Es werden keine direkten Eingaben zur Ausgabe gelesen.
- Es manipuliert die Saite auf eine Weise, die mit Sicherheit keine gerade Katze ist.
Herausforderung:
Bei 3 Eingaben (oder einer Eingabe, getrennt, wie Sie möchten) erhalten Sie drei Objekte (Wörter), die wir im Text und in der Ausgabe durch Stifte, Ananas und Äpfel ersetzen werden.
Ausgabeformat ( gemäß den auf AZLyrics gefundenen Texten ):
Angenommen (Werte durch eckige Klammern ersetzen):
- A, B, C mit Eingabewörtern (Bsp.
apple
) - UA, UB, UC mit Eingabewörtern mit Großbuchstaben (falls nicht bereits in Großbuchstaben) (z. B.
Apple
) - FUA, FUB, FUC mit jeweils ersten Großbuchstaben: (Bsp.
A
) - ein / eine mit Artikel zum Anfangsbuchstaben Vokal / Konsonant (Bsp.
an
)
[FUA] - [FUB] - [FUC] - [FUA] Ich habe [ein / eine] [A], ich habe [ein / eine] [C]. Äh! [UC] - [UA]! Ich habe [ein / eine] [A], ich habe [ein / eine] [B]. Äh! [UB] - [UA]! [UC] - [UA], [UB] - [UA]. Äh! [UA] - [UB] - [UC] - [UA]. [UA] - [UB] - [UC] - [UA]!
Testfall:
Testen Sie mit pen
, pineapple
und 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!
Regeln:
- Wenn die Eingabe nicht mit einem Buchstaben beginnt, nehmen Sie Konsonant (
a
) an und schreiben Sie zuerst das erste Zeichen (z. B. ) in Großbuchstaben123 -> 1
. - Code-Golf , die geringste Anzahl an Charakteren gewinnt!
Antworten:
JavaScript (ES6),
217...187183 BytesNimmt die Eingabe als Array von 3 Zeichenfolgen, z
['pen', 'pineapple', 'apple']
.Beispiele
Code-Snippet anzeigen
quelle
'golf', 'puzzle', 'code'
IMHOPerl 6 , 165 Bytes
Verwendet den gleichen Ansatz wie Arnauld's JS-Antwort .
quelle
Batch,
494490 BytesErläuterung: Das
:h
Unterprogramm übernimmt die LeitungI have a %, I have a %.
der%
s aus den entsprechenden Befehlszeilenargumente substituiert sind, und dann werden die Zeichenkettena a
,a e
,a i
,a o
unda u
sind mit der äquivalenten ersetzenan
Version. Die:u
Unterroutine behandelt die anderen Zeilen; Es werden die Parameterwörter und in Großbuchstaben alle Anfangsbuchstaben verwendet. (Ein zusätzliches Leerzeichen wird vorangestellt, damit das erste Wort in Großbuchstaben geschrieben werden kann. Es wird jedoch bei der Ausgabe entfernt.) Um Wörter nach-
s zu behandeln, werden zusätzliche Leerzeichen übergeben, sie werden jedoch auch bei der Ausgabe gelöscht. Das:u
Unterprogramm wird auch für die erste Zeile verwendet, obwohl das Extrahieren der Initialen umständlich ist.quelle
Python 3.6 -
351287286 BytesHier gibt es nichts Besonderes, als die neue Funktion der String-Literal-Formatierung zu nutzen.
Hinweis - In der Version wurde die
3.6
Formatierung von Zeichenfolgenliteralen eingeführt . Daher funktioniert dies in früheren Versionen nicht.quelle
"
spart nur 2 Bytes,\n
fügt jedoch 12 Bytes hinzu.Lua,
615607 Bytes8 Bytes gespart dank [einem anonymen Benutzer]
Puh, Langer. Probieren Sie es hier aus.
Ich bin zu 100% sicher, dass dies gekürzt werden kann. Ich bin nur faul ..
Verwendet grundsätzlich viel String-Manipulation. Es gibt 3 Hauptfunktionen und eine Variable:
d(string)
: gibt ein zurück, wenn der String vokal (AEIOUaeiou
) ist, andernfalls einz(string)
: Gibt den ersten Buchstaben in Großbuchstaben zurückz(s) .. s:sub(2)
: Gibt ein ganzes Wort, aber den ersten Buchstaben in Großbuchstaben zurückf
: das Endwort (in einer Variablen, um einige Bytes zu speichern). In Ihrem Testfall wäre esPen-Pineapple-Apple-Pen
.Input:
pen
,pineapple
,apple
Ausgabe:
quelle
Python 2 , 283 Bytes
Probieren Sie es online!
quelle