Tantangan Anda adalah mengambil array string dan menghasilkan string terpanjang dalam array. Sehingga untuk
["tiny", "small", "bigger", "biggest"]
hasilnya akan biggest
.
Jika dua elemen array memiliki panjang yang sama, Anda harus memilih salah satu yang muncul pertama kali dalam array. Itu berarti jika array terlihat seperti ini:
["one", "two", "no"]
outputnya one
, tetapi jika arraynya terlihat seperti ini:
["two", "one", "no"]
outputnya adalah two
.
Karena ini adalah kode-golf , kode terpendek dalam byte akan menang.
1
Ini berat berkecil hati jika pertanyaannya diubah dan membatalkan jawaban yang ada, dan2
yang Sandbox ada untuk persis alasan (pastikan tantangan baik sebelum posting)Jawaban:
Imperio Tampio , 168 byte
Versi online
Tidak Disatukan:
Versi online
Satu-satunya peluang bermain golf ini adalah untuk menggantikan
pisin alkio
(yang berarti "elemen terpanjang") denganx
.Terjemahan:
sumber
Python , 23 byte
Cobalah online!
sumber
Haskell , 35 byte
-3 byte terima kasih kepada Zgarb.
Cobalah online!
Saya suka kode ini. Anda tahu mengapa? Karena Haskell mendukung solusi yang jauh lebih elegan dengan fungsi-fungsi dari perpustakaan acak.
Itu bisa dibaca! Kecuali, itu tidak valid.
Jika bukan karena impor, ini akan menjadi pengiriman yang sempurna untuk mendapatkan semua upvotes. : P
(Juga, ini menggunakan satu ujung golf dan menggunakan lipatan.)
sumber
snd.maximum.map((,)=<<(0<$))
Cobalah secara online! .import Data.Lists;argmax(0<$)
.l
bukan bagian darifold
? Bagaimana cara membedakan antara itu dan fungsi bernamafoldl
?foldl1
. Saya pikir bagian dari penjelasan itu mungkin membingungkan, maaf ...0
dengana
atau sesuatu yang lain, jika tidak GHC mengeluh tentang tipe numerik yang ambigu.R + pryr , 31 byte
[-2 byte, terima kasih kepada Scrooble]
Cobalah online!
R , 33 byte
Cobalah online!
sumber
x[which.max(nchar(x))]
UNGGUL,
3642 byteDimasukkan sebagai rumus array (ctrl-shift-enter). Array input harus dimasukkan dalam kolom A.
Rumus mengembalikan pertandingan pertama dengan panjang maksimum.
Bergantung pada pengaturan wilayah Anda, gantikan
,
dengan;
; panjang kode tetap tidak berubah. Dari 16 bahasa yang tercantum di sini , nama fungsi bahasa Inggris adalah yang terpendek untuk rumus ini.Penjelasan:
sumber
,
disebut terakhir? Formula masih berfungsi tanpa itu,
adalah parameter untuk MATCH yang mengembalikan kecocokan tepat pertama, seperti yang dipersyaratkan oleh pertanyaan (direvisi). Jika ditinggalkan, maka MATCH mengharapkan array dalam urutan menaik, dan mengembalikan kecocokan terakhir alih-alih yang pertama jika ada beberapa elemen dengan panjang yang sama.A:A
dan menjadikannya array yang formal dengan{...}
, jika tidak, pos yang hebat!APL (Dyalog Unicode) , 9 byte SBCS
Cobalah online!
⊢
dari argumen,⊃⍨
pilih elemen dengan indeks yang merupakan⊃
pertama dari⍒
indeks dalam urutan menurun dari≢¨
panjang masing-masingsumber
Prolog (SWI) ,
98927269 bytePredikat tingkat atas adalah
*
.Cobalah online!
Penjelasan
Baris pertama mendefinisikan predikat diad
/
untuk menjadi kependekanatom_length/2
yang benar jika panjang argumen pertama adalah argumen kedua. Ini menghemat 3 byte dari penggunaanatom_length
dua kali.Predikat utama kami didefinisikan sebagai diadik di
*
mana argumen pertama adalah daftar dan argumen kedua adalah elemen terpanjang dari daftar itu.Baris kedua adalah kasus dasar kami yang menyatakan bahwa elemen terpanjang dari daftar satu elemen adalah elemen itu.
Baris ketiga menyatakan bahwa untuk daftar dengan setidaknya 2 elemen, elemen terpanjang adalah:
Jika panjang elemen kedua lebih panjang dari elemen pertama, elemen terpanjang ada dalam daftar tanpa elemen pertama.
Kalau tidak, elemen terpanjang ada dalam daftar tanpa elemen kedua.
sumber
Pyth , 4 byte
Suite uji.
Penjelasansumber
elD_
danho_l
mencapai panjang yang sama.PowerShell , 24 byte
Cobalah online!
Dibutuhkan input
$args[0]
, pipa yangSort-Object
didasarkan pada engthl
dalam-d
urutan pengawalan. Kemudian ambil yang[0]
satunya. Karena sort stabil, ini mengambil elemen pertama dalam kasus dasi.sumber
Oktaf , 33 byte
Input adalah array sel string.
Cobalah online!
Penjelasan
cellfun(@nnz,x)
menerapkannnz
fungsi (jumlah nonzeros) untuk setiap string dalam larik inputx
. Untuk string ASCII,nnz
setara dengannumel
(jumlah elemen), tetapi lebih pendek. Hasilnya adalah array numerik dengan panjang string.Kemudian,
[~,]=max(...)
berikan indeks maksimum pertama dalam array panjang string. Hasilnya digunakan sebagai kurung kurawal ke dalamx
untuk mendapatkan string yang sesuai.sumber
JavaScript (Node.js) , 38 byte
Cobalah online!
sumber
-
alih-alih<
dalam fungsi komparator.J ,
19, 11, 108 byteCobalah online!
Terima kasih kepada streetster untuk petunjuknya!
-1 byte terima kasih kepada FrownyFrog!
-2 byte terima kasih kepada Conor O'Brien
Bagaimana itu bekerja:
Cobalah online!
sumber
0{::]\:#@>
{.@
alih-alih0{::
bekerja?0{>\:#@>
C #, 43 + 18 = 61 byte
Cobalah online!
sumber
a=>a.Aggregate((x,y)=>y.Length>x.Length?y:x)
basis 44 byte, basisa=>a.First(x=>x.Length==a.Max(y=>y.Length))
43 bytePerl 6 ,
1413 byteCobalah
Cobalah
sumber
PHP, 72 byte
sumber
Japt
-h
,53 byteCobalah
Membalik, mengurutkan berdasarkan panjang dan menampilkan elemen terakhir.
sumber
Swift , 54 byte
Cobalah online!
sumber
K (oK) , 9 byte
Cobalah online!
Contoh:
Penjelasan
Catatan:
Dihapus karena ini digolongkan sebagai non-sepele, meskipun pada dasarnya 5 langkah (akan jika ditulis sebagai fungsi
{*x@>#:'x}
).sumber
Java (OpenJDK 8) , 67 byte
Kiriman lain dalam bahasa favorit saya! (baca: satu-satunya yang saya tahu).
Ini tidak berfungsi dengan array kosong, tapi tidak apa-apa.
Golf
Tidak disatukan
Cobalah online!
sumber
Racket ,
160 byte,110 byteCobalah online! Pertama kali berkontribusi, saran sangat dihargai!
Tidak disatukan
Solusi yang diperbarui berdasarkan umpan balik
sumber
foldr
pendekatan berbasis, mengambil panjang max dan membawanya melintasi.define(m a)
toλ(a)
Bash , 45 byte
Cobalah online!
sumber
Gores
27 17 170160Ia mengharapkan daftar string global (terlampir pada semua sprite, lebih tepatnya) yang disebut
mylist
. Setelah mengklik tanda hijau, kata terpanjang akan tersisa di variabelw
.Saya pikir ini tautannya
Menghitung sesuai meta ini.
sumber
stop[all
sini?Rosda , 30 byte
Cobalah online!
Penjelasan:
Alternatif 30 byte:
Cobalah online!
sumber
enum
bisa dijatuhkan, dan alih-alih minimum dari[[-#_,_1]]
dapat dipilih, tio.run/…min
akan membandingkan string secara abjad (karena array dibandingkan dengan item kedua). Misalnya input["b", "a"]
akan berikan"a"
sebagai output. Saya mungkin harus menambahkanminby
fungsi ke Rda atau yang serupa ...APL -
2316 bytea←{((⍴¨⍵)⍳(⌈/(⍴¨⍵)))⌷⍵}
Terima kasih kepada semua orang untuk semua saran dan dorongan besar Anda!
Pemakaian:
Penjelasan:
mendapatkan panjang setiap vektor karakter (string) kemudian menggunakan maksimum sebagai indeks. Saya baru saja memulai APL 20 mnt yang lalu jadi saya minta maaf jika ini cara bodoh untuk melakukannya.
Cobalah secara Online!
(diedit untuk kejelasan)
sumber
a←
dihitung terhadap bytecount Anda.(⌈/(⍴¨⍵))
=>⌈/⍴¨⍵
. Juga,(...)⌷⍵
=>⍵⌷⍨...
untuk menyimpan satu byteML Standar (MLton) , 55 byte
Cobalah online! Contoh penggunaan:
& ["abc","de","fgh"]
hasil"abc"
.Tidak Disatukan:
Cobalah online!
sumber
Julia 0,6 , 24 byte
Cobalah online!
sumber
Funky , 38 byte
Dijelaskan
Cobalah online!
sumber
Ruby ,
2120 byteCobalah online!
Solusi sepele, terima kasih Snack untuk -1 byte
sumber
&:size
tanda kurung untuk -1SNOBOL4 (CSNOBOL4) ,
6357 byteCobalah online!
Input ada di stdin dan output di stdout.
Secara kasar diterjemahkan ke pseudocode berikut:
sumber
Bash , 44 byte
Cobalah online!
sumber