Desafio:
Dada uma sequência s
nos caracteres a
- z
, A
- Z
, 0
- 9
, acrescente o comprimento de s
si mesmo, contando os caracteres adicionais no comprimento como parte do comprimento total de s
.
Entrada:
Apenas uma sequência de comprimento arbitrário (pode estar vazio).
Resultado:
A mesma sequência, mas com seu comprimento anexado ao final. Os caracteres que representam o comprimento também devem ser contados como parte do comprimento. Nos casos em que há vários comprimentos válidos para acrescentar, escolha o menor possível (consulte exemplos de casos de teste).
Casos de teste:
INPUT -> OUTPUT // Comment
aaa -> aaa4
-> 1 // Empty string
aaaaaaaa -> aaaaaaaa9 // aaaaaaaa10 would also normally be valid, but violates using the smallest number rule mentioned above
aaaaaaaaa -> aaaaaaaaa11
a1 -> a13 // Input can contain numbers at the end of the string, you do not have to handle the fact that it looks like 13 rather than 3.
Longer test case(s):
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa101
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa102
Regras:
Isso é código-golfe , então o código mais curto em bytes vence. As brechas padrão são proibidas. Os envios podem ser um programa inteiro ou uma função, e você pode imprimir o resultado em stdout ou retorná-lo como uma variável de uma função.
fonte
Respostas:
Pitão - 7 bytes
Experimente online aqui .
fonte
JavaScript (ES6), 32 bytes
Como funciona
Começando com
N=0
, testamos o enésimo caractere (baseado em 0) da sequência feita da concatenação da sequência original de entrada e a representação decimal deN
. Nós incrementamosN
até que esse personagem não exista mais.Exemplo:
Casos de teste
Mostrar snippet de código
fonte
LaTeX, 108/171
\q[] //1
fonte
JavaScript (ES6), 37 bytes
fonte
Run Code Snippet
, recebo uma mensagem de erro. Eu não tenho conhecimento de Javascript - Eu só estava tentandoVersion 48.0.2564.97
). Vou tentar isso com o IE também. Não é possível atualizar meus cromo - questões de segurança de escritórioC,
676561 bytesWandbox
fonte
Lua 5.2, 32 bytes
Onde a variável a é a sequência de entrada.
fonte
Pyke, 8 bytes ( versão antiga )
Explicação:
Experimente aqui! (Nova versão, 9 bytes)
fonte
Python 2,
544846 bytesSolução simples. A recursão acabou sendo mais curta.
Experimente online
fonte
(s+`n`)[n:]
porn<len(s+`n`)
.Haskell, 46 bytes
Exemplo de uso:
f "aaaaaaaa"
->"aaaaaaaa9"
.Simplesmente tente todos os números que começam com 0 e pegue o primeiro que se encaixa.
fonte
Mathematica, 57 bytes
Função sem nome, recebendo uma matriz de caracteres como entrada e retornando uma string. Usa o fato de que se
a
é o comprimento da entrada, o número a ser acrescentado à entrada éa
mais o número de dígitos em (a
+ o comprimento dea
), em vez de apenasa
o número de dígitos dea
. Infelizmente, não daria a resposta certa para a entrada de cadeia vazia sem o~Max~1
caso especial.fonte
Braquilog , 13 bytes
Experimente online!
Explicação
Basicamente, uma descrição do problema. Ele tentará todos os valores
L
maiores que o comprimento da entrada até encontrar um para o qual, quando concatenado com a entrada, é o comprimento dessa concatenação.fonte
Brainfuck, 258 bytes
A entrada deve ser finalizada por um avanço de linha (LF). Funciona apenas para entradas com comprimento menor que 256 (incluindo o LF).
Experimente online!
Explicação
Nota: usei o código desta resposta do SO para converter o comprimento em saída ascii; Espero que isso seja aceitável no PPCG. Esta é minha primeira submissão ao Codegolf e meu segundo programa de graduação. O feedback é bem-vindo.
fonte
Retina , 22 bytes
Experimente online!
Ah, bem, se não fossem os dígitos que apareciam na entrada, seriam apenas 11 bytes:
fonte
Ruby,
625856 bytesTestado em
irb
.Provavelmente existe uma maneira melhor de fazer isso, mas essa foi a primeira coisa que me veio à cabeça. Qualquer ajuda no golfe seria apreciada.
editar: percebi que meu uso de parênteses era excessivo.
fonte
l
em um só lugar. Se você incorporar isso, você salvará 3 bytesl=;
. Mas sua solução ainda vai ser maior do que o meu;)Perl 6 ,
4635 bytesTente
Expandido:
fonte
05AB1E , 11 bytes
Força bruta bastante direta:
Experimente online!
fonte
Python, 39 bytes
Forma mais longa:
Iterativamente em Python 2 (41 bytes):
Começando com
x
como a sequência de entradaa
, aplica a transformaçãox -> a + str(len(x))
três vezes. Ainda não estou claro por que três aplicativos são necessários para sempre atingir o ponto fixo.fonte
PHP, 42 bytes
Corra com
-r
. Teste nas funções do OnlinePHP .fonte
bash, 47 bytes
Salve isso como um script e passe a string de entrada como argumento.
É uma implementação de força bruta: tente cada número por vez até encontrar um que funcione.
fonte
> <> (Peixe) 35 bytes
Coloca entrada na pilha, verifica o comprimento em relação aos valores 9,99.999 ... e se o comprimento for maior que adicionar 1 ao comprimento da pilha.
fonte
Haskell ,
6160 bytesExperimente online!
Solução recursiva. Uso:
fonte
C #, 77 bytes
fonte
return(n+(a+1+c))
comoa=n.Length
?-1
deint c=(a+1).ToString().Length-1
e o+1
de retorno?aa...a100
vez deaa...a101
para oa
caso de teste 99 .MATL , 11 bytes
Experimente online! Ou verifique todos os casos de teste .
fonte
Ruby, 51 bytes (programa)
Ruby, 49 bytes (função)
Programa (a última nova linha não é necessária e, portanto, sem pontuação):
Função (a última nova linha é pontuada):
fonte
Fator, 55 bytes
É um passeio no parque! Eu pensei nisso assim que li a pergunta.
fonte
Clojure, 72 bytes
fonte
R, 49 bytes
Solução bastante simples.
fonte
Read 1 item Error in nchar(x + 1) : object 'x' not found
. Eu achei que(t<-nchar(a))+...
funcionou.Wolfram, 56
Dada
l = StringLength[x]
ele acrescental + IntegerLength[l + IntegerLength[l]]
ax
.fonte
Labirinto ,
484541 bytesExperimente online!
Salvo 4 bytes agradecidos a @Martin Ender
fonte
ForceLang, 83 bytes
fonte