Avez-vous déjà rêvé de créer des hashtags Twitter tels que #brexit ou #brangelina ? ce golf est pour vous.
Ecrivez un programme qui accepte deux chaînes A & B en entrée et les fusionne selon l'algorithme suivant:
- Soit
n
le nombre de groupes de voyelles dans A (par exemple,britain
a 2 groupes de voyelles:i
en position 3 etai
en position 5).- si n = 1: tronque A en partant de la première position du groupe de voyelles (exemple:
bill
=>b
) - si n> 1: tronque A en partant de
n-1
la position du groupe de voyelles (exemple:programming
=>progr
,britain
=>br
)
- si n = 1: tronque A en partant de la première position du groupe de voyelles (exemple:
- supprime toutes les consonnes au début de B (
jennifer
=>ennifer
) - concaténer les A & B modifiés
Les voyelles sont aeiou
; les consonnes sont bcdfghjklmnpqrstvwxyz
.
Contribution
Vous pouvez supposer que les chaînes en entrée sont en minuscules et contiennent au moins une voyelle et une consonne.
Exemples
brad + angelina => brangelina
britain + exit => brexit
ben + jennifer => bennifer
brangelina + exit => brangelexit
bill + hillary => billary
angelina + brad => angelad
programming + puzzle => progruzzle
code + golf => colf
out + go => o
donald trump
.Django + Angular = Djular
Réponses:
Ruby,
444340 + 1 = 41 octets+1 octet pour le
-p
drapeau. Prend une entrée séparée par des espaces sur STDIN.-1 octet grâce à Martin Ender
-2 octets grâce à histocrat
Essayez-le en ligne!
GNU sed,
3937 + 1 = 38 octets+1 octet pour le
-E
drapeau. Prend une entrée séparée par des espaces sur STDIN.-1 octet grâce à Martin Ender
Essayez-le en ligne!
Ne pas poster ceci comme une réponse séparée parce que c'est littéralement la même solution.
la source
[^aeiou]
tant que sous-expression:/([aeiou]+([^aeiou]*)){,2} \g<2>/
ruby -e "..."
. Pour celaruby -pe "..."
, il n’ajoute qu’un octet.MATL,
31 à30 octetsEssayez-le en ligne
Explication
la source
JavaScript (ES6),
817372 octetsÉconomisé 8 octets grâce à @Jordan, 1 grâce à @DavidConrad
Même si
.match
renvoie un tableau,array+array
retourne une chaîne avec le contenu des tableaux concaténés (c'est-à-dire, les[0]+[1]
retours"01"
).Extrait de test
Afficher l'extrait de code
L’excellente solution Ruby de Jordan serait de 53 octets dans JS:
la source
(a,b)=>
toa=>b=>
enregistre 1 octet.Gelée ,
2322 octetsTryItOnline
Comment?
la source
PowerShell v2 +, 76 octets
Apparemment, c'est un regex populaire ... ;-)
Utilise l'
-replace
opérateur pour extraire les pièces appropriées, puis concatène les résultats ensemble. Ajoute un$
à la première pour s'assurer que nous tirons l'extrémité de la chaîne, et ajoute un^
à la seconde pour nous assurer de tirer l'avant de la chaîne.la source
Retina , 35 octets
Essayez-le en ligne! (La première ligne active une suite de tests séparée par saut de ligne.)
Supprime simplement toutes les correspondances de la regex sur la première ligne.
la source
/^((\(\g<1>\))*)$/
en Ruby.Cannelle, 23 octets
Essayez-le en ligne.
Explication
Cette décompresse à
d([aeiou]+[^aeiou]*)([aeiou]+[^aeiou]*)? [^aeiou]*
, ce quid
supprime tout ce qui correspond à cette expression rationnelle. (Notez que le golfier de Jordan sed([aeiou]+[^aeiou]*){,2} [^aeiou]*
compresse à 24 octets en raison de l'absence d'éléments répétés à compresser.)la source
d[aeiou]+[^aeiou]*[aeiou]*[^aeiou]* [^aeiou]*
tout plus court?PHP, 95 octets
avec preg_match au lieu de preg_filter 110 octets
la source
+
au lieu de{1,2}
.$v=aeiou;
pour économiser 3 de plus.Lua, 66 octets
la source
Perl 5, 39 octets
38, plus 1 pour
-pe
au lieu de-e
Pointe du chapeau.
la source
Python 2, 139 octets
Celui-ci était difficile.
Découvrez-le sur repl.it
la source
Lithp , 65 octets
Ceci est fondamentalement un port de la réponse JavaScript ci-dessus, dans mon langage de programmation fonctionnel Lisp-ish.
Exemple d'utilisation:
Pas d'interprète en ligne pour le moment. Je vais en fournir un bientôt. Ce ne sera pas difficile, ma langue est écrite en JavaScript.
Au lieu de cela, cette solution de puzzle est implémentée comme exemple de travail pour ma langue. Il peut être exécuté avec la commande suivante:
la source
Haskell,
111108 octetsCette solution non regex s'est avérée plus longue que prévu. Idéale-le quand même.
la source
Jq 1.5 , 45 octets
Rien de spécial, juste un port de msh210 solution perl s » à PCRE de JQ.
Essayez-le en ligne!
la source
Japt , 18 octets
Essayez-le en ligne!
Port direct de la solution JS courte qui est à son tour le port de la solution jordanienne Ruby .
Comment ça fonctionne
la source