Os caracteres alfanuméricos têm valores ASCII:
0-9 -> 48-57
A-Z -> 65-90
a-z -> 97-122
Seu desafio é pegar um número inteiro como entrada e gerar quantos caracteres podem ser criados usando dígitos consecutivos desse número. Os códigos de caracteres podem estar sobrepostos. 666
deve resultar 2
, uma vez que você tem 66
duas vezes.
Casos de teste:
Input: 5698
Possible characters: '8' (56), 'E' (69), 'b' (98)
Output: 3
Input: 564693
Possible characters: '8' (56), 'E' (69)
Output: 2
Input: 530923864209124521
Possible characters: '5' (53), 'V' (86), '4' (52)
Output: 3
Input: 1111111
Possible characters: 'ooooo' (5*111)
Output: 5
Input: 5115643141276343
Possible characters: '3' (51), '8' (56), 'L' (76), 's' (115)
Output: 4
Input: 56789
Possible characters: '8' (56), 'C' (67), 'N' (78), 'Y' (89)
Output: 4
Input: 94
Possible characters: ''
Output: 0
Input: 1
Output: 0
Os formatos de entrada e saída são opcionais (sim, você pode usar o número inteiro como uma sequência).
ŒžKÇÃg
não funciona?1111111
caso de teste.Ã
, isso faz muito mais sentido agora que eu li o que está fazendo, merda.Braquilog , 22 bytes
Experimente online!
Explicação
fonte
T
juntos?MATL ,
1713 bytesExperimente online! Ou verifique todos os casos de teste .
Explicação
fonte
Java 7,
204197195 bytesExplicação:
Código do teste:
Experimente aqui.
fonte
r
). No entanto, consegui obter 7 bytes de golfe colocando tudo o mais dentro do loop for, em um único ternário. Vou ver se posso fazer sua segunda sugestão mais tarde, talvez. Meu almoço terminou novamente, então terei que voltar ao trabalho. Manterá isso em mente.JavaScript (ES6),
7170 bytesCasos de teste
Mostrar snippet de código
fonte
Perl 5 , 47 bytes
46 bytes de código +
-p
sinalizador.Experimente online!
Não consegui encontrar uma maneira mais curta de escrever isso
48..57,65..90,97..122
:map{ord}0..9,a..z,A..Z
(obter o valor ascii dos caracteres) é um byte a mais. E fazerfor$c(0..122){$\+=chr($c)=~/\pl|\d/ for/(?=$c)/g}}{
(procurar todos os números, mas manter apenas aqueles cujos números correspondem ao valor ASCII de letras (\pl
) ou dígitos (\d
)) terá 5 bytes a mais (observe que\pl|\d
não pode ser substituído por,\w
pois este também inclui sublinhados)) .Abordagem anterior (49 bytes):
fonte
PHP, 68 bytes
Versão Online
fonte
JavaScript (ES),
165161156154 154153 bytesSim, o RegEx definitivamente não era a ferramenta certa para o trabalho aqui!
Tente
fonte
Retina , 52 bytes
Experimente online! (inclui suíte de teste)
fonte
Python 2 ,
746462 bytesExperimente online!
fonte
Haskell,
161157138 138129126 bytesGostaria de saber se existe uma maneira melhor de remover dupes da lista do que importar Data.List para nub?
fonte
Data.Lists
em vez deData.List
, você pode usar:y<-tail$powerslice x
.Data.Lists
. É até mencionado nas dicas de golfe de Haskell - ninguém se queixou até agora.or $ f <$> list
éany f list
:any(elem$read y)[...]
.Pitão,
191714 bytespega uma corda.
-3 Bytes graças a @LeakyNun
Tente!
Explicação
fonte
idT
, você pode usarsd
.l@jGUTmr0Csd.:
pode ser mais curto (não tenho certeza se funciona).Geléia , 8 bytes
A entrada é uma matriz de dígitos.
Experimente online!
Como funciona
fonte
Ruby, 50 bytes
Lê da entrada padrão; requer que o interpretador Ruby seja chamado com a
-n
opção (while gets
loop implícito ).Pode ser reduzido para 43 bytes se for permitido corresponder sublinhados.
fonte
111
, o que deve retornar,1
mas você está devolvendo0
.Japt , 24 bytes
Experimente online!
Versão alternativa de 27 bytes:
Experimente online!
fonte