Étant donné une chaîne en entrée, sortez la chaîne avec l'algorithme suivant appliqué:
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"
Spécifications
Vous pouvez prendre des entrées et fournir des sorties sous n'importe quelle forme standard , et le seul type de données autorisé pour Input et Output est le type String natif de votre langue. Il n'est pas permis de saisir directement une liste de mots individuels.
Vous avez la garantie qu'il n'y aura pas d'espaces consécutifs.
Les voyelles sont
"a","e","i","o","u","A","E","I","O","U"
, mais"y","Y"
ne sont pas considérées comme des voyelles .Vous avez la garantie que seules les lettres et les espaces apparaîtront dans l'entrée, mais sans aucune nouvelle ligne.
La sortie doit être sensible à la casse.
Vous n'êtes pas assuré que chaque mot contient une voyelle. Si aucune voyelles n'apparaissent dans ce mot, vous n'avez rien à produire pour cela.
Cas de test
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"
Notation
La soumission valide la plus courte pour chaque langue gagne, c'est le code-golf . Bonne chance et amusez-vous bien!
Sandbox pour ceux qui peuvent voir les messages supprimés.
Réponses:
Haskell, 59 octets
Essayez-le en ligne!
la source
V , 31 octets
Essayez-le en ligne!
Et explication:
la source
æ
utilisé, je semble me souvenir qu'il a été ajouté très récemment et c'est l'une des commandes les plus utiles.æ
est extrêmement utile. J'aurais dû l'ajouter il y a longtemps.ø
est aussi vraiment sympa, c'est cool que cette réponse utilise les deux.|
( essayez-le en ligne! ), Ce qui n'est pas dans votre explication. Mais je ne connais pas V; est-ce nécessaire?<C-a>
place le curseur à la fin du mot). tio.run/##K/v//3Cvgv7hTVyHNx1uObzj8OLoxNTM/…Brachylog , 17 octets
Essayez-le en ligne!
Explication
C'est une traduction directe du problème:
la source
Perl 6 , 57 octets
la source
Alice , 32 octets
Essayez-le en ligne!
Explication
Ceci est juste un cadre pour le code linéaire en Ordinal (mode de traitement de chaîne). En déroulant le programme, nous obtenons:
Voici ce qu'il fait:
la source
JavaScript (ES6), 76 octets
Cas de test
Afficher l'extrait de code
la source
Perl 5, 47 octets
Code de 45 octets + 2 pour
-pa
.Essayez-le en ligne!
la source
JavaScript (ES6), 96 octets
Afficher l'extrait de code
la source
Thx
) ne devraient pas avoir de sortie; votre scénario de test génère le mot entier.Pyth - 19 octets
Essayez-le ici
Explication:
Je pourrais avoir 18 octets sinon pour la chaîne vide:
la source
@
- l'intersection est bien meilleure que l'expression régulière ici. Oh, je vois - vous n'avez qu'une lambda / carte par rapport à ma 2.Pyth, 31
Cela m'a pris du temps à écrire, et j'ai l'impression qu'il y a probablement une meilleure approche, mais voici ce que j'ai:
Test en ligne .
la source
jk
astuce.Ohm, 13 octets
Explication
z
.:
) avec son bloc de code associéαv_K_σh
.av
pousseaeiou
_
pousse l'élément itéré actuelK
compte les occurrences deaeiou
dans_
_
l'élément à nouveauσh
Divise l'élément en tranches de longueuroccurences
et prend le premier élément.occurences
caractères0J
Pousse la pile jointe''
0
est nécessaire car il nécessite un argument qui sera joint. Si cet argument n'est pas un tableau, il rejoint la pileR
inverse le résultatla source
Rubis ,
5459 + 1 =5560 octetsUtilise l'
-p
indicateur pour +1 octet.Essayez-le en ligne!
la source
-p
vaut un octet?ruby -pe '...'
ne s'agit que d'un octet de plusruby -e '...'
et-e
constitue un moyen valide d'exécuter le script.Japt v2.0a0,
1210 octetsEssayez-le
Explication
Fait à peu près exactement ce que la spécification décrit!
la source
"%v"
à\v
(un littéral d'expression régulière à classe unique, équivalent à/\v/
). Pas encore utile, bien sûr, car je n'ai pas encore implémenté la versionGelée , 12 octets
Essayez-le en ligne!
la source
05AB1E , 14 octets
Essayez-le en ligne!
Darn 05AB1E n'a pas intégré pour AEIOUaeiou ಠ_ಠ
la source
#RʒDlžMÃg£R?
pour 12, vous pouvez à peu près juste mettre en minuscule la dupe en supprimant le besoin deAEIOUaeiou
. Aussi, pourquoi diable ce travail sans le?
? Pouvez-vous poster une explication, je ne suis pas familier avecʒ
Mathematica, 145 octets
la source
s[[i]]],
et{i,Length@s}
renvoyé?"aeiouAEIOU".ToCharArray()
?Rétine ,
4946 octetsEssayez-le en ligne! Le lien inclut une suite de tests. Explication: il s'agit d'une application des groupes d'équilibrage de .NET. La tête de recherche recherche le mot pour les voyelles, qui sont capturées dans le groupe 2. Le groupe est ensuite sauté lorsque chaque lettre est appariée, capturant ainsi le nombre de lettres égal au nombre de voyelles dans le mot. Le reste du mot et tout espace de fin sont ensuite ignorés afin que le processus puisse recommencer avec le mot suivant. Enfin, les lettres restantes sont inversées.
la source
C # (.NET Core) , 144 octets
Essayez-le en ligne!
Le pire, c'est qu'inverser un
string
en C # renvoie unIEnumerable<char>
que vous devez reconvertir en astring
.la source
PHP , 96 octets
Essayez-le en ligne!
la source
Python 3 ,
83817977 octetsEssayez-le en ligne!
la source
()
impressionraw_input()
au lieu deinput()
quoi gaspillerait 4 octets.Java 8 ,
171151 octets-20 octets grâce à @Lukas Rotter
J'ai l'impression qu'il faut encore du golf ... faites le moi savoir dans les commentaires si vous avez des suggestions.
Essayez-le en ligne!
la source
(?i)
ignorance de la casse dans les expressions régulières. Cela(?i)[aeiou]
devrait également fonctionner.{}
crochets de la boucle for, car une seule instruction y est contenue.^
pour trouver la quantité de voyelles:z+=w.substring(0,w.replaceAll("(?i)[^aeiou]","").length());
k, 33 octets
Essayez-le en ligne!
la source
Lisp commun, 218 octets
Explication
la source
sed, 133 (132 + 1) octets
sed est appelé avec le
-E
drapeau, ce qui signifie apparemment que j'ajoute un octet.Remarque: je n'ai pas encore vraiment essayé de jouer au golf.
Essayez-le en ligne!
la source
Clojure,
9694 octetsEh bien, cette longueur est assez ridicule.
mapcat
enregistré deux octets.la source
Swift 3, 240 octets
C'est une fonction qui peut être utilisée avec
f(s:"Input")
. Étonnamment, je ne pense pas qu'il puisse être joué plus loin:Essayez-le chez IBM Sandbox!
la source