String Sum Tertinggi
Diberikan string input, kembalikan kata dengan jumlah tertinggi dari setiap karakter unicode-nya.
Aturan
- Input harus dipisahkan oleh spasi putih
- Nilai setiap kata didasarkan pada jumlah setiap karakter dalam kode UTF-16 kata tersebut
- Output harus kata pertama dengan nilai tertinggi (dalam hal jumlah duplikat)
Contohnya
Input: "a b c d e"
Output: "e"
Input: "hello world"
Output: "world"
Input: "this is a test"
Output: "test"
Input: "àà as a test"
Output: "àà"
Input "α ää"
Output: "α"
Input: "🍬 隣隣隣"
Output: "隣隣隣"
Input: "💀 👻 🤡 🦇 🕷️ 🍬 🎃"
Output: "🕷️"
Ini kode golf, jadi jawaban tersingkat menang! Semoga berhasil :)
code-golf
string
unicode
text-processing
GammaGames
sumber
sumber
Jawaban:
Jelly , 7 byte
Cobalah online!
sumber
O§MḢị
["abc", "def"]
. Tetapi pada titik ini ada banyak jawaban jadi saya tidak menyarankan menambahkan metode input baruPerl 6 , 34 byte
Cobalah online!
sumber
R ,
77 69 59 58 5644 byteUpaya kelompok sekarang.
Cobalah online!
Konversikan ke poin kode, jumlah setiap kata, negate, sortir, kembalikan elemen pertama.
Secara teknis nilai kembali adalah "vektor bernama" yang nilainya adalah jumlah dan nama adalah kata yang menang, tetapi ini tampaknya mengikuti aturan. Jika Anda ingin mengembalikan kata yang menang sebagai string, Anda harus menghabiskan 7 byte lebih dan membungkusnya di atas
names()
.sumber
"💀 👻 🤡 🦇 🕷️ 🍬 🎃"
mencetak" 🕷️ "
(dengan banyak ruang di depannya)sort(-sapply(...))
lebih pendek 3 byte.mapply
melakukanunlist
secara gratis.05AB1E , 8 byte
Cobalah online!
Penjelasan
sumber
R
sebenarnya membalik daftar setelah diurutkan?àà as a test
yangàà
dantest
memiliki unicode yang sama jumlah terbesar. Jadi tanpa kebalikannyatest
akan menjadi output, bukanàà
. Btw, Emigna, gunakan#
untuk menyimpan byte. ;) EDIT: Sudahlah. Saya melihat itu tidak membungkus input dalam daftar untuk input kata tunggal .. Sangat disayangkan.JavaScript (ES6), 81 byte
Cobalah online!
sumber
f("😂 龘龘龘龘龘")
"😂 龘龘龘龘龘"
?隣(\uf9f1)
lah yang ada di blok CJK Compatibility Ideograph, bukan lol. Kupikir itu隣(\u96a3)
, yang ada di blok CJK Unified Ideograph.jq,
61435737 karakter(
57395333 karakter kode + 4 opsi opsi baris perintah)Contoh dijalankan:
Cobalah online!
sumber
Pyth, 8 byte
Suite uji
Saya tahu sudah ada jawaban Pyth tapi saya merasa seperti ini menggunakan pendekatan yang sangat berbeda
Penjelasan:dan juga lebih pendeksumber
PowerShell ,
7452 byteCobalah online!
Berkat mazzy untuk -22 byte kekalahan.
-split
S input$args
pada spasi putih, pipa yang kesort
dengan mekanisme penyortiran tertentu{...}
dan-u
bendera unik.Di sini kita mengambil kata saat ini
$_
, mengubahnyat
oCharArray
, lalu untuk setiap huruf kita menambahkannya ke kita$r
esult . Itu mengubah string menjadi angka berdasarkan pada representasi UTF-16.Untuk sekali ini, PowerShell memiliki semua string menjadi UTF-16 di latar belakang adalah penyelamat hidup!
Kami kemudian merangkum hasil-hasil itu
(...)
untuk mengubahnya menjadi sebuah array dan mengambil yang terakhir[-1]
, yaitu, hasil terbesar yang paling dekat dengan awal kalimat. Ini berfungsi karena-u
bendera nique, yaitu, jika ada elemen kemudian yang memiliki nilai yang sama, itu dibuang. Kata itu ditinggalkan di jalur pipa dan hasilnya tersirat.sumber
sort -u
sebaliknya? dapatkah cukup+
untuk mengonversi angka?(-split$args|sort{($_|% t*y|%{+$_})-join"+"|iex} -u)[-1]
(-split$args|sort{$r=0;$_|% t*y|%{$r+=$_};$r}-u)[-1]
:)Python 3 ,
5552 byteCobalah online!
split
metode ini.sumber
split()
, karena terbagi pada kelompok spasi putih.MATLAB, 57 byte
Dalam MATLAB R2016a saya semua tes dilewati, kecuali bahwa emoji tidak ditampilkan dengan benar. Tetapi karakter dikembalikan dengan benar
sumber
Japt
-h
, 8 byte@ Pendekatan Enigma
Cobalah online!
Pendekatan Lain
Japt
-g
, 8 byteCobalah online!
sumber
Java (JDK) ,
1179784 byte-13 byte terima kasih @Nay. Rupanya saya tidak tahu saya juga bisa menggunakan
var
di Jawa.Cobalah online!
sumber
s->{var b="";for(var a:s.split(" "))b=a.chars().sum()>b.chars().sum()?a:b;return b;}
Ruby, 45 karakter
Contoh dijalankan:
Cobalah online!
Ruby 2.4, 40 karakter
(Belum dicoba.)
sumber
Pyth , 33 byte
Cobalah online!
Hampir pasti ada cara yang lebih baik untuk melakukan ini, tetapi saya menghabiskan terlalu banyak untuk itu sehingga ini bisa dilakukan.
Saya akan memberikan pengurangan ke peta lain alih-alih menggunakan for for loop, tapi saya tidak bisa membuatnya bekerja.
sumber
Arang , 20 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Pisahkan string input pada spasi dan tetapkan ke
q
.Hitung jumlah tata cara karakter di setiap kata dan tetapkan
h
.Temukan indeks jumlah tertinggi dan cetak kata di indeks itu.
sumber
Powershell, 66 byte
Mudah. Lihat jawaban AdmBorkBork untuk menemukan penggunaan Powershell yang cerdas.
Catatan! Untuk memperbaiki pekerjaan dengan unicode, simpan file skrip Anda dengan
UTF-16
atauUTF8 with BOM
penyandian.Skrip uji:
Keluaran:
sumber