Este problema proviene de cinco problemas de programación que todo ingeniero de software debería poder resolver en menos de 1 hora, lo que en sí mismo es una lectura interesante. Los primeros problemas son triviales, pero el cuarto puede ser un poco más interesante.
Dada una lista de enteros separados por un solo espacio en la entrada estándar, imprima los valores más grandes y más pequeños que se pueden obtener al concatenar los enteros en su propia línea.
Por ejemplo:
Entrada:
5 56 50
Salida:
50556
56550
Varios puntos de orden:
- El orden de los resultados es menor que mayor.
- Solo se pueden imprimir los valores más pequeños y más grandes (iterar sobre todas las variaciones e imprimirlas no es válido).
- Siempre habrá dos o más enteros en la lista.
- Es posible que los resultados más grandes y más pequeños sean los mismos. En el caso de la entrada
5 55
, el número555
debe imprimirse dos veces. - Los enteros no son necesariamente distintos.
5 5
Es una entrada válida. - Los principales
0
s en enteros no son entradas válidas. Usted no necesita para tener en cuenta05 55
.
Como se trata de código de golf, gana la entrada más corta.
05
), ¿lo consideramos como05
o simplemente5
?Respuestas:
CJam,
1413 bytesMuy claro. Así es como funciona:
Pruébalo en línea aquí
fuente
e!
existía (ni siquiera aparece en la wiki todavía).Pyth,
1413 bytesGenera todas las permutaciones y las ordena, imprimiendo el primer y el último elemento.
fuente
J
línea:hJSmsd.pcz)eJ
Python 2,
10499 bytesSí.
Editar: gracias a xnor por -5 bytes!
fuente
sorted
funciona sin corchetes, pero también puede evitar la clasificación y simplemente tomarmin
ymax
.Mathematica,
6458 bytesEsto define una función sin nombre que toma una cadena e imprime las dos líneas. Es bastante sencillo como los demás: obtenga todas las permutaciones, únalas, ordénelas e imprima el primer y el último resultado.
Seis bytes guardados gracias a alephalpha.
fuente
{#&@@#,Last@#}
=>#[[{1,-1}]]
JavaScript (ES6)
54 7285Eso es más fácil de lo que parece. Solo ordénelos lexicográficamente. La buena noticia es: así es exactamente cómo funciona el tipo de JavaScript simple.Bueno ... no, eso está mal ... todavía una comparación de lexicografía (más complicada) puede hacer el trabajo.Nota: teniendo un número numérico ayb, a + [b] es un atajo para a + '' + b, ya que necesitamos una concatenación de cadenas y no una suma.
Nota 2: la nueva línea dentro de `` es significativa y debe contarse
Editar No discutas con un moderador (... es broma)
Edit2 Formato de E / S fijo mediante ventanas emergentes (consulte Predeterminado para Code Golf: métodos de entrada / salida )
Prueba en la consola Firefox / FireBug
fuente
J, 34
36,42bytesfuerza bruta simple:
fuente
Haskell, 98 bytes
Dividir la cadena de entrada en los espacios, concatenar cada permutación y ordenar. Imprime el primer y último elemento.
fuente
Julia, 77 bytes
Esto crea una función sin nombre que acepta un vector como entrada e imprime el mínimo y el máximo de las permutaciones de los elementos unidos. Para llamarlo, asígnele un nombre, por ejemplo
f=v->...
.Ungolfed + explicación:
¡Sugerencias son bienvenidas!
fuente
Javascript ( ES6 ) 134
Lamentablemente, no hay una función de permutación incorporada en JS :(
fuente
R, 59 bytes
fuente
combinat::permn
.::
requería que el paquete se cargara (a través delibrary
orequire
) pero no:::
. Podría estar equivocado; Necesito leer un poco más al respecto. Gracias.permn
directamente sin unlibrary(combinat)
.library(combinat)
antes de poder usarla depermn
todos modos. ;)Rubí 75
No es mi idioma 'nativo', pero pensé que lo probaría ... así que esto (posiblemente) podría usar algunos consejos de golf. Aún así, no es un mal entrante.
No diría que es elegante, aparte de que todo está integrado en el idioma. Debería ser bastante obvio exactamente cómo funciona esto.
fuente
{|x|x.join}
con(&:join)
un ahorro de 3 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]
Llamada con
echo 13 42 532 3 6|perl -M5.10.0 -an scratch.pl
. Hay una penalización de +2 bytes por-an
. Lástima la longitud del nombre del módulo ...fuente
JavaScript (ES6), 85 bytes
uso:
fuente