Entrada:
Uma lista de números inteiros
Saída:
Coloque cada dígito (e o sinal de menos) em sua própria pista, na ordem -0123456789
, ignorando os dígitos duplicados.
Exemplo:
Entrada: [1,729,4728510,-3832,748129321,89842,-938744,0,11111]
Saída:
-0123456789 <- Added as clarification only, it's not part of the output
1
2 7 9
012 45 78
- 23 8
1234 789
2 4 89
- 34 789
0
1
Regras do desafio:
- Quaisquer dígitos duplicados no número são ignorados.
- A E / S pode estar em qualquer formato razoável. A entrada pode ser como uma lista / matriz de cadeias ou matriz de caracteres. A saída pode ser como uma lista de strings, caracteres, matriz de caracteres etc.
- Os espaços à direita são opcionais.
- Qualquer quantidade de novas linhas iniciais ou finais é opcional (mas não entre linhas).
- A entrada sempre conterá pelo menos um número inteiro
- Você vai ter que suportar um intervalo inteiro de pelo menos
-2,147,483,648
embora2,147,483,647
(32-bit). - A lista de entrada nunca conterá
-0
,00
(ou mais do que dois zeros), ou números inteiros com zeros (ou seja012
). - Se o seu idioma usa um símbolo diferente para números negativos (como um superior
¯
), você também pode usá-lo, desde que seja consistente. - Você pode ter um delimitador de espaço entre os dígitos (para que uma linha sem 5 ou 8 possa ser
- 0 1 2 3 4 6 7 9
substituída por-01234 67 9
), desde que seja consistente (e, portanto, também deve haver um espaço entre-
e0
).
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código.
- Além disso, adicione uma explicação, se necessário.
Casos de teste:
Input: [1,729,4728510,-3832,748129321,89842,-938744,0,11111]
Output:
1
2 7 9
012 45 78
- 23 8
1234 789
2 4 89
- 34 789
0
1
Input: [4,534,4,4,53,26,71,835044,-3559534,-1027849356,-9,-99,-3459,-3459,-94593,-10234567859]
Output:
4
345
4
4
3 5
2 6
1 7
0 345 8
- 345 9
-0123456789
- 9
- 9
- 345 9
- 345 9
- 345 9
-0123456789
Input: [112,379,-3,409817,239087123,-96,0,895127308,-97140,923,-748]
Output:
12
3 7 9
- 3
01 4 789
0123 789
- 6 9
0
123 5 789
-01 4 7 9
23 9
- 4 78
Input: [-15,-14,-13,-12,-11,10,-9,-8,-7,-5,-4,-3,-1,0,9,100,101,102,1103,104,105,106,116,-12345690]
Output:
- 1 5
- 1 4
- 1 3
- 12
- 1
-01
- 9
- 8
- 7
- 5
- 4
- 3
- 1
0
9
01
01
012
01 3
01 4
01 5
01 6
1 6
-0123456 9
Input: [99,88,77,66,55,44,33,22,11,10,0,0,0,-941]
Output:
9
8
7
6
5
4
3
2
1
01
0
0
0
- 1 4 9
¯
vez de-
?"-0 1 2 3 4 <space> 6 7 <space> 9"
(Vários espaços são recolhidos nos comentários, por algum motivo)Respostas:
Stax , 8 bytes
Execute e depure
É necessário um número por linha na entrada padrão. Ele funciona localizando o índice de destino de cada personagem e atribuindo-o ao índice do resultado. Se o índice estiver fora dos limites, a matriz será expandida com zeros até que caiba. Durante a saída,
0
torna-se um espaço. O resto são códigos de caracteres.Descompactado, não jogado e comentado, é assim que parece.
Execute este
fonte
["7"]
. Este formato também pode lidar com vários valores, como["34", "43"]
.05AB1E , 13 bytes
Código:
Usa a codificação 05AB1E . Experimente online!
Explicação:
fonte
vðTúyvyÐd+ǝ},
;).ǝ
que funcionaria assim-0
. Mas agora que eu acho isso, na verdade é um número e não uma string, como eu li pela primeira vez: PHaskell , 51 bytes
-1 byte graças a Laikoni .
Experimente online!
Este desafio é digitador. D:
fonte
"-0123456789"
é um byte menor que'-':['0'..'9']
.JavaScript,
5958 bytesEntrada e saída como uma matriz de strings.
Tente
Original
Recebe entrada como uma matriz de seqüências de caracteres e gera uma matriz de matrizes de caracteres
Mostrar snippet de código
fonte
APL (Dyalog) ,
3212 bytes28 bytes salvos graças a @ Adám e @ngn
Experimente online!
fonte
{' '@(~∊∘⍵)'¯',⎕D}¨
. Obviamente, também pode levar-
com mudanças triviais.{⊃¨⍵∘.∩'¯',⎕d}
⊃¨⎕∘.∩'¯',⎕d
05AB1E ,
1713 bytesGuardado 4 bytes graças a Adnan
Experimente online!
Explicação
fonte
Ruby , 42 bytes
Lambda anônimo processando a matriz de números:
Experimente online!
Como alternativa, um programa completo completamente semelhante ao Perl é muito mais curto. Eu diria que os
-pl
switches parecem bem engraçados nesse contexto:Ruby
-pl
, 29 bytesExperimente online!
Finalmente, é possível o seguinte, se for aceitável que as seqüências de saída sejam citadas:
Ruby
-n
, 27 bytesExperimente online!
fonte
JavaScript (Node.js) , 60 bytes
Experimente online!
fonte
join
truque é adorável - mas a pergunta é como uma matriz de seqüências de caracteres é uma saída OK, então talvez você possa raspar 8 bytes removendo-o?(X+"").includes(x)
comRegExp(x).test(X)
(X+"").match(x)
seria ainda mais curto. A questão também permite que a entrada seja uma matriz de seqüências de caracteres, podendo até serX.match(x)
.Japt , 16 bytes
Entrada e saída como uma matriz de strings.
Tente
Explicação
fonte
Python 3 ,
7764 bytes-12 bytes graças a @Rod
Experimente online!
Minha primeira tentativa adequada de jogar golfe em Python. Conselho bem-vindo!
Retorna uma matriz 2D de caracteres.
fonte
'-0123456789'
vez disso,range(10)
largar o primeiro bloco e trocarstr(z)
comz
, você também pode alternar para python2 e usar em`y`
vez dissostr(y)
(``
é + - equivalente arepr
) #in "-
.Perl 5
-pl
, 33 bytesExperimente online!
Recebe a entrada como linha separada.
fonte
Haskell , 47 bytes
Experimente online!
Usa
max
para inserir um espaço onde nenhum elemento existe, pois um espaço é menor que qualquer dígito ou sinal de menos.Se um número ímpio de espaços à direita estiver OK, dois bytes poderão ser salvos:
45 bytes
Experimente online!
fonte
MATL , 13 bytes
Entrada é uma matriz de células de cadeias. Experimente online! Ou verifique todos os casos de teste .
Explicação
fonte
J ,
3227 bytes-5 bytes graças ao FrownyFrog!
Experimente online!
Solução original:
J , 32 bytes
Explicação:
@":
converter para caracteres e}11$' '"0
alterar o conteúdo de uma matriz de 11 espaços para esses caracteres'_0123456789'i.[
nos locais, indicados pelos índices dos caracteres nesta listaExperimente online!
fonte
10|.":(10<."."0@[)}11$' '"0
Planilhas Google , 124 bytes
Entrada é uma lista separada por vírgula na célula
A1
. A saída está no intervalo emB1:L?
que?
há, no entanto, muitas entradas. (Você pode colocar a fórmula onde quiser, apenas escolhiB1
por conveniência.) Observe que o Planilhas adicionará automaticamente quatro parênteses de fechamento ao final da fórmula, economizando esses quatro bytes.Outro caso de teste e outro caso de teste
Explicação:
Mid("-0123456789",Row($1:$11),1)
escolhe cada um dos 11 caracteres por vez.Find(Mid(~),Split(A1,","))
procura esses caracteres em cada um dos elementos de entrada. Isso retorna um valor numérico ou, se não for encontrado, um erro.If(IsError(Find(~)," ",Mid(~))
retornará um espaço se o personagem não foi encontrado ou se foi. (Gostaria que houvesse uma maneira de evitar duplicar aMid(~)
parte, mas não conheço uma.)ArrayFormula(If(~))
é o que faz as referências multicelularesMid(~)
eFind(~)
trabalho. É também o que faz com que uma fórmula em uma célula retorne valores em várias células.Transpose(ArrayFormula(~))
transponha a matriz retornada porque ela inicia lateralmente.fonte
Gelatina , 12 bytes
Experimente online!
-2 graças a Jonathan Allan lendo uma regra que não li.
Observe que o formato de E / S usado no link TIO não é o atual, que é inserido como uma lista de representações de sequência e produzido como uma lista de linhas.
fonte
Perl 6 , 35 bytes
Experimente online!
Saída é uma matriz de caracteres que contém correspondências de expressão regular ou caracteres de espaço.
fonte
-pe
permitiria que você dispensasse o inicial .map, chaves e troque$^a
por #$_
-p
e de-n
alguma forma parecem com erros, pelo menos no TIO. Por alguma razão,$_
não é passado para blocos. Veja o exemplo 1 , exemplo 2 .Java 8, 53 bytes
Meu próprio desafio é mais fácil do que eu pensava quando o fiz.
Entrada e saída como a
java.util.stream.Stream<String>
.Explicação:
Experimente online.
fonte
C (gcc) , 159 bytes
Experimente online!
fonte
R ,
9675 bytesExperimente online!
Agradecemos a Kevin Cruijssen por sugerir essa abordagem regex!
Pega a entrada do stdin como números inteiros separados por espaço em branco e imprime o ascii-art no stdout.
fonte
function(N)for(i in N)cat(paste(gsub(paste("[^","]",sep=i)," ","-0123456789"),"\n"))
. (Digite como string-array em vez de número inteiro.) Experimente online.SOGL V0.12 ,
1413 bytesExperimente aqui!
Explicação:
fonte
SNOBOL4 (CSNOBOL4), 85 bytes
Try it online!
fonte
Pyth, 14 bytes
Takes input as list of strings and outputs a list of strings for each line.
Try it here
Explanation
fonte
Retina, 26 bytes
Try it online! Note: Trailing space. Explanation:
%
executes its child stage~
once for each line of input.~
first executes its child stage, which wraps the line in[^
and]<CR><SP>
, producing a program that replaces characters not in the line with spaces. The"-0123456789"
specifies that the input to that program is the given string ($
substitutions are allowed but I don't need them).fonte
Perl 5
-n
, 30 bytesWouldn't work if
-
could appear anywhere else than in the first positionTry it online!
fonte
-
could appear anywhere else than in the first position if that can be true then you are not answering this challenge, since they wouldn't be integers anymore. :PRed, 94 bytes
Takes input as a block of strings
Try it online!
fonte
CJam, 20 bytes
Try it online!
Accepts input as space separated list of integers. Pretty much the same approach as @adnans answer.
fonte
C (gcc),
9594 bytesTry it online!
Input in the form of a list of strings. Output to STDOUT.
fonte
c++
, and changingd=c?c+47:
tod=c++?c+46:
.K4,
3027 bytesSolution:
Example:
Explanation:
Return "-0123..." or " " based on the input. Interpreted right-to-left. No competition for the APL answer :(
fonte
APL+WIN, 33 bytes
Prompts for screen input as a string
fonte