Su desafío es tomar una matriz de cadenas y generar la cadena más larga de la matriz. Entonces para
["tiny", "small", "bigger", "biggest"]
la salida sería biggest
.
Si dos elementos de la matriz tienen la misma longitud, debe elegir el que aparece primero en la matriz. Eso significa que si la matriz se ve así:
["one", "two", "no"]
la salida es one
, pero si la matriz se ve así:
["two", "one", "no"]
la salida es two
.
Como se trata de código golf , gana el código más corto en bytes.
code-golf
string
array-manipulation
sorting
Escondido
fuente
fuente
1
Se desaconseja mucho si la pregunta se cambia e invalida la respuesta existente, y2
el Sandbox existe exactamente por esa razón (asegúrese de que los desafíos sean buenos antes de publicar)Respuestas:
Tampio imperativo , 168 bytes
Versión en línea
Sin golf:
Versión en línea
La única oportunidad de golf que tiene es reemplazar
pisin alkio
(que significa "el elemento más largo") conx
.Traducción:
fuente
Pitón , 23 bytes
Pruébalo en línea!
fuente
Haskell , 35 bytes
-3 bytes gracias a Zgarb.
Pruébalo en línea!
Me gusta este codigo ¿Sabes por qué? Porque Haskell admite soluciones mucho más elegantes con funciones de bibliotecas aleatorias.
¡Eso es legible! Excepto que no es válido.
Si no fuera por las importaciones, esta hubiera sido una presentación perfecta para obtener todos los votos positivos. :PAGS
(Además, esto usa una punta de golf y usa un pliegue).
fuente
snd.maximum.map((,)=<<(0<$))
Pruébelo en línea! .import Data.Lists;argmax(0<$)
.l
no es partefold
? ¿Cómo distingue entre eso y una función nombradafoldl
?foldl1
. Pensé que parte de la explicación podría ser confusa, lo siento ...0
cona
o algo más, de lo contrario, GHC se queja de un tipo numérico ambiguo.R + pryr , 31 bytes
[-2 bytes gracias a Scrooble]
Pruébalo en línea!
R , 33 bytes
Pruébalo en línea!
fuente
x[which.max(nchar(x))]
SOBRESALIR,
3642 bytesIngresado como una fórmula de matriz (ctrl-shift-enter). La matriz de entrada debe ingresarse en la columna A.
La fórmula devuelve la primera coincidencia con longitud máxima.
Dependiendo de la configuración de su región, sustituya
,
con;
; la longitud del código permanece sin cambios. De los 16 idiomas enumerados aquí , los nombres de funciones en inglés son los más cortos para esta fórmula.Explicación:
fuente
,
el último? La fórmula aún funciona sin ella,
es un parámetro para MATCH que devuelve la primera coincidencia exacta, como lo requiere la pregunta (revisada). Si se omite, MATCH espera una matriz en orden ascendente y devuelve la última coincidencia en lugar de la primera si hay varios elementos con la misma longitud.A:A
y lo convierta en una matriz formal{...}
, ¡de lo contrario, es una gran publicación!APL (Dyalog Unicode) , SBCS de 9 bytes
Pruébalo en línea!
⊢
del argumento⊃⍨
elija el elemento con el índice que es el⊃
primero de los⍒
índices en orden descendente de la≢¨
longitudes de cadafuente
Prólogo (SWI) ,
98927269 bytesEl predicado de nivel superior es
*
.Pruébalo en línea!
Explicación
La primera fila define el predicado diádico
/
como un corto para elatom_length/2
cual es verdadero si la longitud del primer argumento es el segundo argumento. Esto nos ahorra 3 bytes al usaratom_length
dos veces.Nuestro predicado principal se define como la diádica
*
donde el primer argumento es una lista y el segundo argumento el elemento más largo de esa lista.La segunda fila es nuestro caso base que establece que el elemento más largo de una lista de un elemento es ese elemento.
La tercera fila indica que para una lista con al menos 2 elementos, el elemento más largo es:
Si la longitud del segundo elemento es más larga que el primer elemento, el elemento más largo está en la lista sin el primer elemento.
De lo contrario, el elemento más largo está en la lista sin el segundo elemento.
fuente
Pyth , 4 bytes
Banco de pruebas.
Explicaciónfuente
elD_
yho_l
lograr la misma longitud.PowerShell , 24 bytes
Pruébalo en línea!
Toma entradas
$args[0]
, canalizacionesSort-Object
basadas en lal
profundidad en-d
orden ascendente. Luego toma el[0]
th del mismo. Como sort es estable, esto toma el primer elemento en caso de empate.fuente
Octava , 33 bytes
La entrada es una matriz de celdas de cadenas.
Pruébalo en línea!
Explicación
cellfun(@nnz,x)
aplica lannz
función (número de nonzeros) a cada cadena en la matriz de entradax
. Para cadenas ASCII,nnz
es equivalente anumel
(número de elementos), pero más corto. El resultado es una matriz numérica con las longitudes de cadena.Luego,
[~,]=max(...)
da el índice del primer máximo en la matriz de longitudes de cadena. El resultado se utiliza como un índice de llavesx
para obtener la cadena correspondiente.fuente
JavaScript (Node.js) , 38 bytes
Pruébalo en línea!
fuente
-
lugar de<
en la función de comparación.J ,
19, 11, 108 bytesPruébalo en línea!
Gracias a streetter por la pista!
-1 byte gracias a FrownyFrog!
-2 bytes gracias a Conor O'Brien
Cómo funciona:
Pruébalo en línea!
fuente
0{::]\:#@>
{.@
lugar de0{::
trabajar?0{>\:#@>
C #, 43 + 18 = 61 bytes
Pruébalo en línea!
fuente
a=>a.Aggregate((x,y)=>y.Length>x.Length?y:x)
base de 44 bytes, la base dea=>a.First(x=>x.Length==a.Max(y=>y.Length))
43 bytesPerl 6 ,
1413 bytesIntentalo
Intentalo
fuente
PHP, 72 bytes
fuente
Japt
-h
,53 bytesIntentalo
Invertir, ordenar por longitud y generar el último elemento.
fuente
Rápido , 54 bytes
Pruébalo en línea!
fuente
K (oK) , 9 bytes
Pruébalo en línea!
Ejemplo:
Explicación
Notas:
Sin eliminar, ya que se clasifica como no trivial, a pesar de ser básicamente 5 pasos (se escribiría como la función
{*x@>#:'x}
).fuente
Java (OpenJDK 8) , 67 bytes
¡Otra presentación en mi idioma favorito! (léase: el único que conozco).
Esto no funciona con una matriz vacía, pero está bien.
Golfed
Sin golf
Pruébalo en línea!
fuente
Raqueta ,
160 bytes110 bytesPruébalo en línea! Contribución por primera vez, apreciado consejo!
Sin golf
Solución actualizada basada en comentarios
fuente
foldr
enfoque basado en la base, tomar el máximo por longitud y transmitirlo.define(m a)
aλ(a)
Bash , 45 bytes
Pruébalo en línea!
fuente
Scratch
27 17 170160Espera una lista global de cadenas (unidas a todos los sprites, para ser más precisos) llamadas
mylist
. Después de hacer clic en la bandera verde, la palabra más larga quedará en la variablew
.Creo que este es el enlace
Contando según este meta.
fuente
stop[all
aquí?Röda , 30 bytes
Pruébalo en línea!
Explicación:
Alternativa de 30 bytes:
Pruébalo en línea!
fuente
enum
se puede descartar, y en su lugar[[-#_,_1]]
se puede seleccionar el mínimo de , tio.run/…min
compararía las cadenas de forma alfabética secundaria (porque las matrices se comparan secundariamente por su segundo elemento). Por ejemplo, input["b", "a"]
daría"a"
como salida. Probablemente debería agregar unaminby
función a Röda o algo similar ...APL -
2316 bytesa←{((⍴¨⍵)⍳(⌈/(⍴¨⍵)))⌷⍵}
¡Gracias a todos por todas sus excelentes sugerencias y aliento!
Uso:
Explicación:
obtiene la longitud de cada vector de caracteres (cadena) y luego usa el máximo como índice. Acabo de comenzar APL hace 20 minutos, así que lamento si esta es una forma estúpida de hacerlo.
Pruébalo en línea!
(editado para mayor claridad)
fuente
a←
no se cuenta para su bytecount.(⌈/(⍴¨⍵))
=>⌈/⍴¨⍵
. Además,(...)⌷⍵
=>⍵⌷⍨...
para guardar un byteML estándar (MLton) , 55 bytes
Pruébalo en línea! Ejemplo de uso:
& ["abc","de","fgh"]
rendimientos"abc"
.Sin golf:
Pruébalo en línea!
fuente
Julia 0.6 , 24 bytes
Pruébalo en línea!
fuente
Funky , 38 bytes
Explicado
Pruébalo en línea!
fuente
Ruby ,
2120 bytesPruébalo en línea!
Solución trivial, gracias Snack por -1 byte
fuente
&:size
paréntesis de -1SNOBOL4 (CSNOBOL4) ,
6357 bytesPruébalo en línea!
La entrada está en stdin y la salida en stdout.
Se traduce aproximadamente al siguiente pseudocódigo:
fuente
Bash , 44 bytes
Pruébalo en línea!
fuente