Reduza cada palavra em uma sequência de grupos de seqüências de caracteres em letras únicas delineadas por espaços ou pontuação.
Exemplo
I'm a little teapot, short and stout. Here is my handle, here is my spout. When I get all steamed up - hear me shout! Tip me over and pour me out.
torna-se
I' a l t, s a s. H i m h, h i m s. W I g a s u - h m s! T m o a p m o.
Editar - se houver vários espaços, preserve apenas um espaço. Toda pontuação deve ser preservada, perdi o apóstrofo. Sim, este é o código golf :-).
+
etc.)O'Leary-Clarence-DeVois
se tornariaO'--
?Respostas:
CJam, 13 bytes
Funciona se eu puder considerar apenas os caracteres de pontuação comuns e a saída pode ter espaços à direita. (Obrigado a Dennis.)
Esta questão precisa de muito mais esclarecimentos ...
CJam,
1716 bytesExperimente online .
Explicação
fonte
r
empurra uma string vazia no EOF, então isso também funciona:r{(\eu_elf&Sr}h;
;
não faz sentido então.&
. Além disso, dependendo do que conta exatamente como pontuação,'@,
seria uma alternativa mais curtaeu_el
.Pitão, 14 bytes
Experimente online: Demonstração
Explicação:
fonte
Python 3.4,
94928277 bytesEu sou novo em codificar golfe, mas pensei em tentar! Este não é um vencedor, mas foi divertido.
Isso apenas divide a string, levando o primeiro caractere de cada palavra junto com qualquer pontuação no restante da palavra.
* editado com alterações por FryAmTheEggman, DLosc
fonte
print(*[w[0]+''.join([c for c in w[1:]if 1-c.isalpha()])for w in input().split()])
join
pode usar um gerador simples como argumento. Além disso, aqui está uma forma cadeia de corte de fazer a lógica "se não isalpha":c[c.isalpha():]for c in w
. Você deve descer para 77 bytes. : ^)Gelatina , 14 bytes
Experimente online!
Solução feita com o Sr. Xcoder e caird coinheringaahing na sala de bate-papo Jelly Hypertraining .
Alternativa 14 bytes: Experimente online!
fonte
sed (39 caracteres)
Apenas algumas expressões regulares:
fonte
Lua - 126 caracteres
Lua não é uma linguagem de código de golfe, mas eu tentei:
Isso pressupõe que
c
é a string.Aqui está limpo para facilitar a leitura:
Você pode testá-lo aqui (copie e cole. Pela primeira vez, você também precisa fazer
c = "I'm a little ...
.) Por algum motivo, a demonstração on-line de Lua não permitirá que você insira variáveis usandoio.read
...fonte
PowerShell, 56 bytes
fonte
Javascript ( ES6 )
7268 bytesComentado:
fonte
C99 -
170169 bytesUngolfed:
Uso:
Resultado:
fonte
Java 8, 87 bytes
Explicação:
Experimente aqui.
Explicação Regex:
Portanto, basicamente remove todas as letras minúsculas de uma String, exceto a primeira.
fonte
Perl 5 , 34 bytes
Código de 33 bytes + 1 para
-p
.Experimente online!
fonte
R,
4645 bytesIsso lê uma linha de STDIN e imprime em STDOUT. Ele usa uma expressão regular para remover todos os caracteres após a primeira letra seguida por qualquer quantidade de pontuação.
Ungolfed + explicação:
Exemplo:
fonte
05AB1E , 13 bytes
Experimente online!
Explicação:
fonte
VBA (Excel),
141133 bytesUsando a janela imediata do VBA, [A1] como seqüências de caracteres inseridas.
fonte
Perl 6 , 15 bytes
Experimente online!
fonte