Dada uma sequência como entrada, produza a sequência com o seguinte algoritmo aplicado:
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"
Especificações
Você pode receber e fornecer saída de qualquer forma padrão , e o único tipo de dados permitido para entrada e saída é o tipo String nativo do seu idioma. Não é permitido receber entradas diretamente como uma lista de palavras individuais.
Você está garantido que não haverá espaços consecutivos.
As vogais são
"a","e","i","o","u","A","E","I","O","U"
, mas"y","Y"
não são consideradas vogais .Você tem a garantia de que apenas letras e espaços aparecerão na entrada, mas sem novas linhas.
A saída deve fazer distinção entre maiúsculas e minúsculas.
Você não tem garantia de que cada palavra contenha uma vogal. Se nenhuma vogal aparecer nessa palavra, você não precisará produzir nada para ela.
Casos de teste
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"
Pontuação
A submissão válida mais curta para cada idioma vence, é o código-golfe . Boa sorte e divirta-se!
Sandbox para quem pode ver as postagens excluídas.
Respostas:
Haskell, 59 bytes
Experimente online!
fonte
V , 31 bytes
Experimente online!
E explicação:
fonte
æ
uso, lembro-me de ter sido adicionado muito recentemente e é um dos comandos mais úteis.æ
é extremamente útil. Eu deveria ter adicionado há muito tempo.ø
também é muito legal, é legal que essa resposta use os dois.|
( Experimente online! ), Que não está na sua explicação. Mas eu não sei V; é necessário?<C-a>
coloca o cursor no final da palavra). tio.run/##K/v//3Cvgv7hTVyHNx1uObzj8OLoxNTM/…Braquilog , 17 bytes
Experimente online!
Explicação
Essa é uma tradução direta do problema:
fonte
Perl 6 , 57 bytes
fonte
Alice , 32 bytes
Experimente online!
Explicação
Esta é apenas uma estrutura para código linear no Ordinal (modo de processamento de string). Desdobrando o programa, obtemos:
Aqui está o que ele faz:
fonte
JavaScript (ES6), 76 bytes
Casos de teste
Mostrar snippet de código
fonte
Perl 5, 47 bytes
Código de 45 bytes + 2 para
-pa
.Experimente online!
fonte
JavaScript (ES6), 96 bytes
Mostrar snippet de código
fonte
Thx
) não devem ter saída; seu caso de teste gera a palavra inteira.Pitão - 19 bytes
Experimente aqui
Explicação:
Eu poderia ter 18 bytes, se não fosse a string vazia:
fonte
@
- intersecção é muito melhor que regex aqui. Oh, eu vejo - você só tem um lambda / MAP em relação ao meu 2.Pyth, 31
Demorei muito tempo para escrever e sinto que provavelmente existe uma abordagem melhor, mas eis o que tenho:
Teste online .
fonte
jk
dica.Ohm, 13 bytes
Explicação
z
.:
) com seu código associadoαv_K_σh
.av
empurraaeiou
_
empurra o elemento iterado atualK
conta as ocorrências deaeiou
em_
_
o elemento novamenteσh
Divide o elemento em fatias de comprimentooccurences
e pega o primeiro elemento.occurences
caracteres0J
Empurra a pilha unida''
0
é necessário porque requer um argumento que será associado. Se esse argumento não é uma matriz, ele se junta à pilhaR
reverte o resultadofonte
Ruby ,
5459 + 1 =5560 bytesUsa o
-p
sinalizador para +1 byte.Experimente online!
fonte
-p
vale um byte?ruby -pe '...'
é apenas mais um byteruby -e '...'
e-e
é uma maneira válida de executar o script.Japt v2.0a0,
1210 bytesTente
Explicação
Praticamente faz exatamente o que a especificação descreve!
fonte
"%v"
para\v
(um regex de classe única literal, equivalente a/\v/
). Não é útil, no entanto, é claro, já que eu não implementaram v2.0 ainda;)Gelatina , 12 bytes
Experimente online!
fonte
05AB1E , 14 bytes
Experimente online!
Darn 05AB1E não tem builtin para AEIOUaeiou ಠ_ಠ
fonte
#RʒDlžMÃg£R?
para os 12, você pode usar apenas letras minúsculas para eliminar a necessidadeAEIOUaeiou
. Além disso, por que diabos isso não funciona sem o?
? Você pode postar uma explicação, eu não estou familiarizado comʒ
Mathematica, 145 bytes
fonte
s[[i]]],
e o espaço não podem{i,Length@s}
ser removidos?"aeiouAEIOU".ToCharArray()
?Retina ,
4946 bytesExperimente online! O link inclui o conjunto de testes. Explicação: Este é um aplicativo dos grupos de balanceamento do .NET. O lookahead pesquisa a palavra em busca de vogais, que são capturadas no grupo 2. O grupo é exibido quando cada letra é correspondida, capturando assim o número de letras igual ao número de vogais na palavra. O restante da palavra e qualquer espaço à direita são ignorados para que o processo possa começar novamente com a próxima palavra. Finalmente, as letras restantes são invertidas.
fonte
C # (.NET Core) , 144 bytes
Experimente online!
A pior parte é que reverter a
string
em C # retorna aIEnumerable<char>
que você deve converter novamente em astring
.fonte
PHP , 96 bytes
Experimente online!
fonte
Python 3 ,
83817977 bytesExperimente online!
fonte
()
para impressãoraw_input()
vez deinput()
que perderia 4 bytes.Java 8 ,
171151 bytes-20 bytes graças a @Lukas Rotter
Eu sinto que ainda precisa de golfe ... deixe-me saber nos comentários se você tiver alguma sugestão.
Experimente online!
fonte
(?i)
para ignorar maiúsculas e minúsculas em regexs. Então(?i)[aeiou]
também deve funcionar.{}
colchetes do loop for, pois apenas uma instrução está contida nele.^
para encontrar a quantidade de vogais:z+=w.substring(0,w.replaceAll("(?i)[^aeiou]","").length());
k, 33 bytes
Experimente online!
fonte
Lisp comum, 218 bytes
Explicação
fonte
sed, 133 (132 + 1) bytes
sed é chamado com a
-E
bandeira, o que aparentemente significa que eu adiciono um byte.Nota: Ainda não tentei jogar golfe ainda.
Experimente online!
fonte
Clojure,
9694 bytesBem, esse comprimento é bastante ridículo.
mapcat
salvou dois bytes.fonte
Swift 3, 240 bytes
Esta é uma função que pode ser usada com
f(s:"Input")
. Surpreendentemente, não acho que possa ser jogado mais:Experimente na IBM Sandbox!
fonte