Ваша задача - взять массив строк и вывести самую длинную строку в массиве. Таким образом, для
["tiny", "small", "bigger", "biggest"]
выход будет biggest
.
Если два элемента массива имеют одинаковую длину, вы должны выбрать тот, который появляется первым в массиве. Это означает, что если массив выглядит так:
["one", "two", "no"]
вывод есть one
, но если массив выглядел так:
["two", "one", "no"]
выход есть two
.
Поскольку это код-гольф , выигрывает самый короткий код в байтах.
code-golf
string
array-manipulation
sorting
выжидать
источник
источник
1
Это сильно расстраивайтесь , если вопрос меняется и аннулирует существующий ответ, и Песочница существует именно по этой причине (убедитесь , что проблемы хороши , прежде чем отправлять)2
Ответы:
Императив Тампио , 168 байт
Онлайн версия
Ungolfed:
Онлайн версия
Единственная возможность игры в гольф - заменить
pisin alkio
(что означает «самый длинный элемент») наx
.Перевод:
источник
Python , 23 байта
Попробуйте онлайн!
источник
Haskell , 35 байт
-3 байта благодаря Згарбу.
Попробуйте онлайн!
Мне нравится этот код Ты знаешь почему? Потому что Haskell поддерживает гораздо более элегантные решения с функциями из случайных библиотек.
Это чертовски понятно! За исключением того, что это не действительно.
Если бы не импорт, это было бы идеальным представлением для получения всех голосов. :П
(Кроме того, для этого используется один наконечник для игры в гольф и используется сгиб.)
источник
snd.maximum.map((,)=<<(0<$))
попробуйте онлайн! ,import Data.Lists;argmax(0<$)
.l
не частьfold
? Как он различает это и названную функциюfoldl
?foldl1
. Я думал, что часть объяснения может сбить с толку, извините ...0
сa
или что - то еще, в противном случае GHC жалуется неоднозначного числового типа.R + pryr , 31 байт
[-2 байта благодаря Scrooble]
Попробуйте онлайн!
R , 33 байта
Попробуйте онлайн!
источник
x[which.max(nchar(x))]
EXCEL,
3642 байтаВведено как формула массива (ctrl-shift-enter). Входной массив должен быть введен в столбце А.
Формула возвращает первое совпадение с максимальной длиной.
В зависимости от настроек вашего региона, замените
,
на;
; длина кода остается неизменной. Из 16 языков, перечисленных здесь , английские названия функций являются самыми короткими для этой формулы.Объяснение:
источник
,
последний? Формула все еще работает без нее,
- это параметр для MATCH, который возвращает первое точное совпадение, как того требует (пересмотренный) вопрос. Если он пропущен, то MATCH ожидает массив в порядке возрастания и возвращает последнее совпадение вместо первого, если имеется несколько элементов одинаковой длины.A:A
и сделали массив формальным{...}
, иначе отличный пост!APL (Dyalog Unicode) , 9 байтов SBCS
Попробуйте онлайн!
⊢
из аргумента,⊃⍨
выбрать элемент с индексом, который является⊃
первый из⍒
индексы в порядке убывания≢¨
длины каждогоисточник
Пролог (SWI) ,
98927269 байтПредикат верхнего уровня является
*
.Попробуйте онлайн!
объяснение
Первая строка определяет двоичный предикат
/
как сокращение, дляatom_length/2
которого верно, если длина первого аргумента является вторым аргументом. Это экономит нам 3 байта при использовании вatom_length
два раза.Наш основной предикат определяется как диадический,
*
где первый аргумент является списком, а второй аргумент - самым длинным элементом этого списка.Вторая строка - это наш базовый случай, в котором говорится, что самым длинным элементом списка из одного элемента является этот элемент.
В третьей строке указывается, что для списка, содержащего не менее 2 элементов, самый длинный элемент:
Если длина второго элемента превышает длину первого элемента, самый длинный элемент находится в списке без первого элемента.
В противном случае самый длинный элемент находится в списке без второго элемента.
источник
Pyth , 4 байта
Тестирование.
объяснениеисточник
elD_
иho_l
достичь той же длины.PowerShell , 24 байта
Попробуйте онлайн!
Принимает входные данные
$args[0]
, направляет ихSort-Object
поl
возрастанию в-d
порядке возрастания. Затем берет[0]
один из них. Так как сортировка стабильна, в случае связи используется первый элемент.источник
Октава , 33 байта
Ввод - это массив ячеек строк.
Попробуйте онлайн!
объяснение
cellfun(@nnz,x)
применяетnnz
функцию (число ненулевых) к каждой строке во входном массивеx
. Для строк ASCII,nnz
эквивалентноnumel
(количеству элементов), но короче. Результатом является числовой массив с длинами строк.Затем
[~,]=max(...)
дает индекс первого максимума в массиве длин строк. Результат используется в качестве индекса фигурных скобокx
для получения соответствующей строки.источник
JavaScript (Node.js) , 38 байт
Попробуйте онлайн!
источник
-
вместо<
функции сравнения.J ,
19, 11, 108 байтПопробуйте онлайн!
Спасибо Streetster за подсказку!
-1 байт благодаря FrownyFrog!
-2 байта благодаря Конору О'Брайену
Как это работает:
Попробуйте онлайн!
источник
0{::]\:#@>
{.@
вместо0{::
работы?0{>\:#@>
C #, 43 + 18 = 61 байт
Попробуйте онлайн!
источник
a=>a.Aggregate((x,y)=>y.Length>x.Length?y:x)
44 байт базы,a=>a.First(x=>x.Length==a.Max(y=>y.Length))
43 байт базыPerl 6 ,
1413 байтПопытайся
Попытайся
источник
PHP, 72 байта
источник
Japt
-h
,53 байтаПопытайся
Обратный, сортировка по длине и вывод последнего элемента.
источник
Swift , 54 байта
Попробуйте онлайн!
источник
K (ок) , 9 байт
Попробуйте онлайн!
Пример:
объяснение
Заметки:
Undeleted, поскольку это классифицируется как нетривиальное, хотя в основном это 5 шагов (будет, если написано как функция
{*x@>#:'x}
).источник
Java (OpenJDK 8) , 67 байт
Еще одна подача на моем любимом языке! (читай: единственный, кого я знаю).
Это не работает с пустым массивом, но это нормально.
Golfed
Ungolfed
Попробуйте онлайн!
источник
Ракетка ,
160 байт110 байтПопробуйте онлайн! Первый раз помог, совет ценится!
Ungolfed
Обновленное решение на основе отзывов
источник
foldr
основанный на подходе, взяв максимум по длине и перенеся его через.define(m a)
наλ(a)
Баш , 45 байт
Попробуйте онлайн!
источник
Царапина
27 17 170160Ожидается глобальный (прикрепленный ко всем спрайтам, если быть более точным) список вызываемых строк
mylist
. После нажатия зеленого флажка в переменной останется самое длинное словоw
.Я думаю, что это ссылка
Считать согласно этой мета.
источник
stop[all
здесь?Рёда , 30 байт
Попробуйте онлайн!
Объяснение:
Альтернатива 30 байтов:
Попробуйте онлайн!
источник
enum
его можно отбросить, и вместо этого[[-#_,_1]]
можно выбрать минимальное из , tio.run/…min
сравниваются строки в алфавитном порядке (потому что массивы сравниваются вторично по их второму элементу). Например, вход["b", "a"]
будет давать"a"
как выход. Я, вероятно, должен добавитьminby
функцию к Röda или что-то подобное ...APL -
2316 байтa←{((⍴¨⍵)⍳(⌈/(⍴¨⍵)))⌷⍵}
Спасибо всем за ваши замечательные предложения и поддержку!
Использование:
Объяснение:
получает длину каждого вектора символов (строку), затем использует максимум в качестве индекса. Я только начал APL 20 минут назад, поэтому я извиняюсь, если это глупый способ сделать это.
Попробуйте онлайн!
(отредактировано для ясности)
источник
a←
Не засчитан ваш ByteCount.(⌈/(⍴¨⍵))
=>⌈/⍴¨⍵
. Кроме того,(...)⌷⍵
=>⍵⌷⍨...
чтобы сохранить один байтСтандартный ML (MLton) , 55 байт
Попробуйте онлайн! Пример использования:
& ["abc","de","fgh"]
доходность"abc"
.Ungolfed:
Попробуйте онлайн!
источник
Юлия 0,6 , 24 байта
Попробуйте онлайн!
источник
трусливый , 38 байт
Разъяснения
Попробуйте онлайн!
источник
Рубин ,
2120 байтПопробуйте онлайн!
Тривиальное решение, спасибо Снэк за -1 байт
источник
&:size
из скобок -1СНОБОЛ4 (CSNOBOL4) ,
6357 байтПопробуйте онлайн!
Вход на стандартный вывод и вывод на стандартный вывод.
Примерно переводится следующий псевдокод:
источник
Баш , 44 байта
Попробуйте онлайн!
источник