Wenn Sie eine Zeichenfolge als Eingabe angeben, geben Sie die Zeichenfolge mit dem folgenden Algorithmus aus:
1. Split the String by " " (find the words): "Hello World" -> ["Hello","World"]
2. Find the vowel count of each component: [2,1] ( ["H[e]ll[o]","W[o]rld"] )
3. For each of the components, output the first n letter where n is the number
of vowels it contains: ["He","W"]
4. Join the list to a single string and reverse it: "HeW" -> "WeH"
Technische Daten
Sie können Eingaben und Ausgaben in jedem Standardformular vornehmen . Der einzige Datentyp, der sowohl für die Eingabe als auch für die Ausgabe zulässig ist, ist der native Zeichenfolgentyp Ihrer Sprache. Eine direkte Eingabe als Liste einzelner Wörter ist nicht zulässig.
Sie werden garantiert, dass es keine aufeinander folgenden Leerzeichen geben wird.
Die Vokale sind
"a","e","i","o","u","A","E","I","O","U"
, werden aber"y","Y"
nicht als Vokale betrachtet .Es wird garantiert, dass nur Buchstaben und Leerzeichen in der Eingabe angezeigt werden, jedoch ohne Zeilenumbrüche.
Bei der Ausgabe muss die Groß- und Kleinschreibung beachtet werden.
Es ist nicht garantiert, dass jedes Wort einen Vokal enthält. Wenn in diesem Wort keine Vokale vorkommen, müssen Sie nichts dafür ausgeben.
Testfälle
Input -> Output
---------------
"" -> ""
"Hello World" -> "WeH"
"Waves" -> "aW"
"Programming Puzzles and Code Golf" -> "GoCauPorP"
"Yay Got it" -> "iGY"
"Thx for the feedback" -> "eeftf"
"Go Cat Print Pad" -> "PPCG"
"ICE CREAM" -> "RCCI"
Wertung
Die kürzeste gültige Einsendung für jede Sprache gewinnt, das ist Code-Golf . Viel Glück und hab Spaß!
Sandbox für diejenigen, die gelöschte Beiträge sehen können.
Antworten:
Haskell, 59 Bytes
Probieren Sie es online!
quelle
V , 31 Bytes
Probieren Sie es online!
Und Erklärung:
quelle
æ
. Ich erinnere mich anscheinend, dass sie erst vor kurzem hinzugefügt wurde, und sie ist einer der nützlicheren Befehle.æ
ist äußerst nützlich. Ich hätte es schon vor langer Zeit hinzufügen sollen.ø
ist auch sehr schön, es ist cool, dass diese Antwort beide verwendet.|
( online ausprobieren! ), Was nicht in deiner Erklärung steht. Aber ich kenne V nicht; wird es gebraucht<C-a>
der Cursor am Ende des Wortes steht). tio.run/##K/v//3Cvgv7hTVyHNx1uObzj8OLoxNTM/…Brachylog , 17 Bytes
Probieren Sie es online!
Erläuterung
Das ist eine direkte Übersetzung des Problems:
quelle
Perl 6 , 57 Bytes
quelle
Alice , 32 Bytes
Probieren Sie es online!
Erläuterung
Dies ist nur ein Framework für linearen Code in Ordinal (Zeichenfolgenverarbeitungsmodus). Das Programm entfaltet sich, wir bekommen:
Das macht es:
quelle
JavaScript (ES6), 76 Byte
Testfälle
Code-Snippet anzeigen
quelle
Perl 5, 47 Bytes
45 Byte Code + 2 für
-pa
.Probieren Sie es online!
quelle
JavaScript (ES6), 96 Byte
Code-Snippet anzeigen
quelle
Thx
) sollten keine Ausgabe haben. Ihr Testfall gibt das ganze Wort aus.Pyth - 19 Bytes
Probieren Sie es hier aus
Erläuterung:
Ich könnte 18 Bytes haben, wenn nicht für die leere Zeichenfolge:
quelle
@
- Kreuzung ist hier viel besser als Regex. Oh, ich verstehe - Sie haben nur ein Lambda / Map im Vergleich zu meinem 2.Pyth, 31
Das hat lange gedauert und ich habe das Gefühl, dass es wahrscheinlich einen besseren Ansatz gibt, aber hier ist, was ich habe:
Online-Test .
quelle
jk
Tipp.Ohm, 13 Bytes
Erläuterung
z
.:
mit dem zugehörigen Codeblock gestartet ( )αv_K_σh
.av
drücktaeiou
_
verschiebt das aktuell iterierte ElementK
zählt die Vorkommen vonaeiou
in_
_
das Element wiederσh
Teilt das Element in Längsschnitteoccurences
und übernimmt das erste Element.occurences
Zeichen0J
Schiebt den Stapel zusammen''
0
ist notwendig, weil es ein Argument erfordert, das verbunden wird. Wenn dieses Argument kein Array ist, wird es dem Stapel hinzugefügtR
kehrt das Ergebnis umquelle
Ruby ,
5459 + 1 =5560 BytesVerwendet das
-p
Flag für +1 Byte.Probieren Sie es online!
quelle
-p
ein Byte wert?ruby -pe '...'
es nur ein Byte mehr alsruby -e '...'
und-e
eine gültige Möglichkeit ist, das Skript auszuführen.Japt v2.0a0,
1210 BytesVersuch es
Erläuterung
Ziemlich genau das, was die Spezifikation beschreibt!
quelle
"%v"
zu\v
(einem Regex-Literal mit einer Klasse, das entspricht/\v/
) wechseln . Noch nicht hilfreich, da ich v2.0 noch nicht implementiert habe;)Gelee , 12 Bytes
Probieren Sie es online!
quelle
05AB1E , 14 Bytes
Probieren Sie es online!
Darn 05AB1E ist nicht für AEIOUaeiou ಠ_ಠ integriert
quelle
#RʒDlžMÃg£R?
Für 12 können Sie die Dupe so gut wie nur in Kleinbuchstaben schreiben, ohne dass dies erforderlich istAEIOUaeiou
. Auch, warum zum Teufel nicht diese Arbeit ohne die?
? Können Sie eine Erklärung abgeben, ich bin nicht vertraut mitʒ
Mathematica, 145 Bytes
quelle
s[[i]]],
und{i,Length@s}
entfernt werden?"aeiouAEIOU".ToCharArray()
?Retina ,
4946 BytesProbieren Sie es online! Link enthält Testsuite. Erläuterung: Dies ist eine Anwendung der .NET-Bilanzkreise. Der Lookahead durchsucht das Wort nach Vokalen, die in Gruppe 2 erfasst werden. Die Gruppe wird dann beim Abgleichen jedes Buchstabens geknallt. Auf diese Weise wird die Anzahl der Buchstaben erfasst, die der Anzahl der Vokale im Wort entspricht. Der Rest des Wortes und alle nachfolgenden Leerzeichen werden dann ignoriert, damit der Vorgang mit dem nächsten Wort erneut beginnen kann. Schließlich werden die verbleibenden Buchstaben umgekehrt.
quelle
C # (.NET Core) , 144 Byte
Probieren Sie es online!
Das Schlimmste ist, dass das Umkehren von a
string
in C # a zurückgibt,IEnumerable<char>
das Sie zurück in a konvertieren müssenstring
.quelle
PHP , 96 Bytes
Probieren Sie es online!
quelle
Python 3 ,
83817977 BytesProbieren Sie es online!
quelle
()
zum Druckenraw_input()
stattdesseninput()
4 Bytes verschwenden.Java 8 ,
171151 bytes-20 Bytes dank @Lukas Rotter
Ich habe das Gefühl, dass es noch etwas Golf braucht ... lass es mich in den Kommentaren wissen, wenn du irgendwelche Vorschläge hast.
Probieren Sie es online!
quelle
(?i)
Ignorieren von Groß- und Kleinschreibung in regulären Ausdrücken. So(?i)[aeiou]
sollte das auch funktionieren.{}
Klammern der for-Schleife entfernen , da nur eine Anweisung darin enthalten ist.^
die Anzahl der Vokale ermitteln:z+=w.substring(0,w.replaceAll("(?i)[^aeiou]","").length());
k, 33 Bytes
Probieren Sie es online!
quelle
Common Lisp, 218 Bytes
Erläuterung
quelle
sed, 133 (132 + 1) Bytes
sed wird mit dem
-E
Flag aufgerufen , was anscheinend bedeutet, dass ich ein Byte hinzufüge.Anmerkung: Ich habe noch nicht wirklich versucht, Golf zu spielen.
Probieren Sie es online!
quelle
Clojure,
9694 BytesNun, diese Länge ist ziemlich lächerlich.
mapcat
sparte zwei Bytes.quelle
Schnelle 3, 240 Bytes
Dies ist eine Funktion, die mit verwendet werden kann
f(s:"Input")
. Überraschenderweise glaube ich nicht, dass man weiter Golf spielen kann:Probieren Sie es bei IBM Sandbox!
quelle