Biorąc pod uwagę ciąg wejściowy, wyślij ciąg przy użyciu następującego algorytmu:
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"
Okular
Możesz pobierać dane wejściowe i dostarczać dane wyjściowe w dowolnej standardowej formie , a jedynym typem danych dozwolonym zarówno dla danych wejściowych, jak i wyjściowych jest rodzimy typ łańcucha w Twoim języku. Bezpośrednie wprowadzanie danych jako listy pojedynczych słów jest niedozwolone.
Masz gwarancję, że nie będzie kolejnych spacji.
Samogłoski są
"a","e","i","o","u","A","E","I","O","U"
, ale"y","Y"
nie są uważane za samogłoski .Masz gwarancję, że na wejściu pojawią się tylko litery i spacje, ale bez żadnych znaków nowej linii.
Wyjście musi być rozróżniana.
Nie ma gwarancji, że każde słowo zawiera samogłoskę. Jeśli w tym słowie nie ma samogłosek, nie musisz nic dla niego wypisywać.
Przypadki testowe
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"
Punktacja
Wygrywa najkrótszy ważny zgłoszenie dla każdego języka, to jest golf golfowy . Powodzenia i miłej zabawy!
Piaskownica dla tych, którzy widzą usunięte posty.
Odpowiedzi:
Haskell, 59 bajtów
Wypróbuj online!
źródło
V , 31 bajtów
Wypróbuj online!
I wyjaśnienie:
źródło
æ
używane, wydaje mi się, że pamiętam, że były dodawane bardzo niedawno i jest to jedno z bardziej przydatnych poleceń.æ
jest niezwykle przydatny. Powinienem był to dodać dawno temu.ø
jest również bardzo fajne, fajnie, że ta odpowiedź używa obu.|
( Wypróbuj online! ), Co nie jest wyjaśnione. Ale nie znam V; czy to jest potrzebne?<C-a>
umieszcza kursor na końcu słowa). tio.runBrachylog , 17 bajtów
Wypróbuj online!
Wyjaśnienie
To bezpośrednie tłumaczenie problemu:
źródło
Perl 6 , 57 bajtów
źródło
Alice , 32 bajty
Wypróbuj online!
Wyjaśnienie
To tylko struktura dla kodu liniowego w Ordinal (tryb przetwarzania łańcucha). Po rozwinięciu programu otrzymujemy:
Oto, co robi:
źródło
JavaScript (ES6), 76 bajtów
Przypadki testowe
Pokaż fragment kodu
źródło
Perl 5, 47 bajtów
Kod 45 bajtów + 2 dla
-pa
.Wypróbuj online!
źródło
JavaScript (ES6), 96 bajtów
Pokaż fragment kodu
źródło
Thx
) nie powinny mieć żadnych wyników; Twój przypadek testowy wypisuje całe słowo.Pyth - 19 bajtów
Wypróbuj tutaj
Wyjaśnienie:
Mógłbym mieć 18 bajtów, gdyby nie pusty ciąg:
źródło
@
- przecięcie jest znacznie lepsze niż regex tutaj. Och, rozumiem - masz tylko jedną lambda / mapę w porównaniu do mojej 2.Pyth, 31
Zajęło mi to dużo czasu i wydaje mi się, że istnieje prawdopodobnie lepsze podejście, ale oto, co mam:
Test online .
źródło
jk
wskazówkę.Ohm, 13 bajtów
Wyjaśnienie
z
.:
) z powiązanym blokiem koduαv_K_σh
.av
popychaaeiou
_
wypycha bieżący iterowany elementK
zlicza wystąpieniaaeiou
w_
_
element ponownieσh
Dzieli element na plasterki długościoccurences
i bierze pierwszy element.occurences
znaki0J
Wpycha połączony stos''
0
to konieczne, ponieważ wymaga argumentu, który zostanie dołączony. Jeśli ten argument nie jest tablicą, dołącza się do stosuR
odwraca wynikźródło
Rubinowy ,
5459 + 1 =5560 bajtówUżywa
-p
flagi dla bajtu +1.Wypróbuj online!
źródło
-p
warto bajt?ruby -pe '...'
jest on tylko o jeden bajt większyruby -e '...'
i-e
jest prawidłowym sposobem wykonania skryptu.Japt v2.0a0,
1210 bajtówSpróbuj
Wyjaśnienie
Prawie robi dokładnie to, co opisuje specyfikacja!
źródło
"%v"
na\v
(literał regularny wyrażenia regularnego, odpowiednik/\v/
). Oczywiście jeszcze nie jest to pomocne, ponieważ nieGalaretka , 12 bajtów
Wypróbuj online!
źródło
05AB1E , 14 bajtów
Wypróbuj online!
Darn 05AB1E nie ma wbudowanego AEIOUaeiou ಠ_ಠ
źródło
#RʒDlžMÃg£R?
dla 12 możesz po prostu małe litery duplikatu, eliminując potrzebęAEIOUaeiou
. Ponadto, dlaczego, u licha, nie będzie działać bez?
? Czy możesz opublikować wyjaśnienie, nie jestem zaznajomiony zʒ
Mathematica, 145 bajtów
źródło
s[[i]]],
i{i,Length@s}
zostać usunięty?"aeiouAEIOU".ToCharArray()
?Siatkówka ,
4946 bajtówWypróbuj online! Link zawiera pakiet testowy. Objaśnienie: Jest to aplikacja grup równoważących platformy .NET. Lookahead szuka słowa w celu znalezienia samogłosek, które są przechwytywane w grupie 2. Grupa jest następnie wyskakująca, gdy każda litera jest dopasowywana, przechwytując w ten sposób liczbę liter równą liczbie samogłosek w słowie. Reszta słowa i końcowe spacje są następnie ignorowane, aby proces mógł rozpocząć się ponownie od następnego słowa. Na koniec pozostałe litery są odwrócone.
źródło
C # (.NET Core) , 144 bajty
Wypróbuj online!
Najgorsze jest to, że odwrócenie a
string
w C # zwraca wartość,IEnumerable<char>
którą musisz przekonwertować z powrotem na astring
.źródło
PHP , 96 bajtów
Wypróbuj online!
źródło
Python 3 ,
83817977 bajtówWypróbuj online!
źródło
()
do drukuraw_input()
zamiast tegoinput()
marnować 4 bajty.Java 8 ,
171151 bajtów-20 bajtów dzięki @Lukas Rotter
Wydaje mi się, że nadal wymaga gry w golfa ... daj mi znać w komentarzach, jeśli masz jakieś sugestie.
Wypróbuj online!
źródło
(?i)
ignorowanie wielkości liter w wyrażeniach regularnych. Tak(?i)[aeiou]
też powinno działać.{}
nawiasy pętli for, ponieważ zawiera tylko jedną instrukcję.^
do znalezienia ilości samogłosek:z+=w.substring(0,w.replaceAll("(?i)[^aeiou]","").length());
k, 33 bajtów
Wypróbuj online!
źródło
Common Lisp, 218 bajtów
Wyjaśnienie
źródło
sed, 133 (132 + 1) bajtów
sed jest wywoływany z
-E
flagą, co najwyraźniej oznacza dodanie jednego bajtu.Uwaga: Tak naprawdę jeszcze nie próbowałem grać w golfa.
Wypróbuj online!
źródło
Clojure,
9694 bajtówTa długość jest niedorzeczna.
mapcat
zapisane dwa bajty.źródło
Swift 3, 240 bajtów
Jest to funkcja, której można używać z
f(s:"Input")
. Zaskakujące, nie sądzę, że można go dalej grać w golfa:Wypróbuj w IBM Sandbox!
źródło