Você não odeia quando deseja copiar e colar uma lista de números (vetor, matriz ...), de um programa para outro, mas o formato em que você tem os números não corresponde ao formato em que você precisa ?
Por exemplo, no MATLAB, você pode ter uma lista separada por espaços como esta:
[1 2 3 4 5] (you can also have it comma separated, but that's not the point)
No Python, você precisará inserir vírgulas para tornar essa lista uma entrada válida; portanto, você precisará convertê-la para
[1, 2, 3, 4, 5]
para fazer funcionar. Em C ++, você pode querer algo como:
{16,2,77,29}
e assim por diante.
Para simplificar a vida de todos, vamos criar um conversor de lista, que pega uma lista em qualquer formato * e gera uma lista em outro formato especificado.
Os colchetes válidos são:
[list]
{list}
(list)
<list>
list (no surrounding brackets)
Os delimitadores válidos são:
a,b,c
a;b;c
a b c
a, b, c <-- Several spaces. Must only be supported as input.
a; b; c <-- Several spaces. Must only be supported as input.
a b c <-- Several spaces. Must only be supported as input.
Observe que a entrada pode ter qualquer número de espaços entre os números, mas a saída pode optar por ter zero espaços (se ,
ou ;
for usado como delimitador) ou um único espaço (se for delimitado por espaço).
Além da lista de entrada, haverá uma sequência (ou dois caracteres) que define o formato de saída. A cadeia de formato irá primeiro ser o tipo de suporte de abertura (apenas), [
, (
, <
, {
ou (o último é um único espaço utilizado quando não há nenhum suporte circundante). O tipo de colchete será seguido pelo tipo de delimitador
,
, ;
ou (o último é um espaço único). Os dois caracteres do formato de entrada devem ser tomados como um único argumento (sequência ou dois caracteres consecutivos) na ordem descrita acima.
Alguns exemplos de cadeias de formato:
[, <-- Output format: [a,b,c]
{; <-- Output format: {a;b;c}
<-- Two spaces, output list has format: a b c
Regras:
- A saída não pode ter espaços à esquerda
- A saída pode ter espaços à direita e uma nova linha
- A saída deve ser apenas a lista de números, não
ans =
ou similar
- A saída deve ser apenas a lista de números, não
- A entrada será uma lista de números inteiros ou decimais (positivos e negativos (e zero)) e uma sequência de dois caracteres
- Se a entrada consistir apenas em números inteiros, a lista de saída deverá ter apenas números inteiros. Se a lista de entrada consistir em números inteiros e decimais, todos os números de saída poderão ser números decimais. (É opcional manter os números inteiros como números inteiros)
- O número máximo de dígitos após o ponto decimal que deve ser suportado é 3.
- A entrada será dois argumentos. Ou seja, os números estão em um argumento e a string de formato é um único argumento.
- O código pode ser um programa ou função
- A entrada pode ser argumento de função ou STDIN
Alguns exemplos:
1 2 3 4
[,
[1,2,3,4]
<1; 2; 3>
; <-- Space + semicolon
1;2;3
not valid: 1.000;2.000;3.000 (Input is only integers => Output must be integers)
{-1.3, 3.4, 4, 5.55555555}
[,
[-1.300,3.400,4.000,5.556] (5.555 is also valid. Rounding is optional)
also valid: [-1.3,3.4,4,5.55555555]
O código mais curto em bytes vence. Como sempre, o vencedor será selecionado uma semana a partir do dia em que o desafio foi lançado. As respostas postadas mais tarde ainda podem vencer se forem mais curtas que o vencedor atual.
Entre os melhores
O snippet de pilha na parte inferior desta postagem gera o catálogo a partir das respostas a) como uma lista da solução mais curta por idioma eb) como uma tabela geral de líderes.
Para garantir que sua resposta seja exibida, inicie-a com um título, usando o seguinte modelo de remarcação:
## Language Name, N bytes
onde N
está o tamanho do seu envio. Se você melhorar sua pontuação, poderá manter as pontuações antigas no título, identificando-as. Por exemplo:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Se você quiser incluir vários números no cabeçalho (por exemplo, porque sua pontuação é a soma de dois arquivos ou você deseja listar as penalidades do sinalizador de intérpretes separadamente), verifique se a pontuação real é o último número no cabeçalho:
## Perl, 43 + 2 (-p flag) = 45 bytes
Você também pode transformar o nome do idioma em um link que será exibido no snippet:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
_
para denotar elementos negativos. :(