Esse problema é causado por cinco problemas de programação que todo engenheiro de software deve resolver em menos de 1 hora, o que é uma leitura interessante. Os primeiros problemas são triviais, mas o quarto pode ser um pouco mais interessante.
Dada uma lista de números inteiros separados por um único espaço na entrada padrão, imprima os valores maiores e menores que podem ser obtidos concatenando os números inteiros juntos em sua própria linha.
Por exemplo:
Entrada:
5 56 50
Resultado:
50556
56550
Vários pontos de ordem:
- A ordem dos resultados é menor e depois maior.
- Somente os menores e os maiores valores podem ser impressos (iterar sobre todas as variações e imprimi-las não é válido).
- Sempre haverá dois ou mais números inteiros na lista.
- É possível que os maiores e menores resultados sejam os mesmos. No caso de entrada
5 55
, o número555
deve ser impresso duas vezes. - Os números inteiros não são necessariamente distintos.
5 5
é uma entrada válida. - Principais
0
s sobre inteiros são não entrada válida. Você não precisará prestar contas05 55
.
Como se trata de código de golfe, a entrada mais curta vence.
05
), nós o consideramos como05
ou simplesmente5
?Respostas:
CJam,
1413 bytesBem direto. É assim que funciona:
Experimente online aqui
fonte
e!
existia agora (nem aparece no wiki ainda).Pitão,
1413 bytesGera todas as permutações e as classifica, imprimindo o primeiro e o último elemento.
fonte
J
inline:hJSmsd.pcz)eJ
Python 2,
10499 bytesSim.
Edit: graças ao xnor por -5 bytes!
fonte
sorted
funciona sem colchetes, mas você também pode evitar a classificação e apenas pegarmin
emax
.Mathematica,
6458 bytesIsso define uma função sem nome pegando uma string e imprimindo as duas linhas. É bem simples como os outros: obtenha todas as permutações, junte-as, classifique-as e imprima o primeiro e o último resultado.
Seis bytes salvos graças ao alefhalpha.
fonte
{#&@@#,Last@#}
=>#[[{1,-1}]]
JavaScript (ES6)
54 7285Isso é mais fácil do que parece. Basta classificá-los lexicograficamente. A boa notícia é: é exatamente assim que a classificação javascript simples funciona.Bem ... não, isso está errado ... ainda uma comparação lexicográfica (mais complicada) pode fazer o trabalho.Nota: tendo a e b numéricos, a + [b] é um atalho para a + '' + b, pois precisamos de uma concatenação de strings e não de uma soma.
Nota 2: a nova linha dentro de `` é significativa e deve ser contada
Editar Não discuta com um moderador (... brincando)
Edit2 Formato de E / S fixo usando pop-ups (consulte Padrão para Code Golf: Métodos de entrada / saída )
Teste no console Firefox / FireBug
fonte
J, 34
36,42bytesforça bruta simples:
fonte
Haskell, 98 bytes
Divida a sequência de entrada em espaços, concatene todas as permutações e classificações. Imprima o primeiro e o último elemento.
fonte
Julia, 77 bytes
Isso cria uma função sem nome que aceita um vetor como entrada e imprime o mínimo e o máximo das permutações dos elementos unidos. Para chamá-lo, dê um nome, por exemplo
f=v->...
.Ungolfed + explicação:
Sugestões são bem-vindas!
fonte
Javascript ( ES6 ) 134
Infelizmente, não há função de permutação embutida no JS :(
fonte
R, 59 bytes
fonte
combinat::permn
.::
exigia que o pacote fosse carregado (vialibrary
ourequire
), mas não:::
. Eu poderia estar errado; precisa ler um pouco mais sobre isso. Obrigado.permn
diretamente sem alibrary(combinat)
.library(combinat)
antes de poder usar depermn
qualquer maneira. ;)Ruby 75
Não é a minha língua 'nativa', mas pensei em tentar ... assim, isso poderia (possivelmente) usar algumas dicas de golfe. Ainda assim, não é um mau participante.
Eu não diria que é elegante que tudo esteja embutido no idioma. Deve ser bastante óbvio exatamente como isso funciona.
fonte
{|x|x.join}
com(&:join)
para um 3 poupanças de bytes.puts$<.read.split.permutation.map(&:join).minmax
puts gets.split.permutation.map(&:join).minmax
Perl,
7970B (68 + 2)use Math::Combinatorics;say for(sort map{join'',@$_}permute@F)[0,-1]
Ligue com
echo 13 42 532 3 6|perl -M5.10.0 -an scratch.pl
. Há uma penalidade de +2 bytes para-an
. Que vergonha quanto ao comprimento do nome do módulo ...fonte
JavaScript (ES6), 85 bytes
uso:
fonte