Dalam tantangan ini, Anda dan teman Anda memperdebatkan kasus mana yang lebih baik, besar atau kecil? Untuk mengetahuinya, Anda menulis sebuah program untuk melakukan ini untuk Anda.
Karena esolang menakut-nakuti teman Anda, dan kode verbal membuat Anda takut, kode Anda harus sesingkat mungkin.
Contohnya
PrOgRaMiNgPuZzLeS & CoDe GoLf
0.52 uppercase
DowNGoAT RiGHtGoAt LeFTGoat UpGoAT
0.58 uppercase
Foo BaR Baz
0.56 lowercase
Spesifikasi
Input hanya akan terdiri dari karakter ASCII. Semua karakter non-alfabet harus diabaikan. Akan ada setidaknya 1 karakter dari setiap kasus
Outputnya harus berupa jumlah case yang paling sering muncul di atas jumlah total karakter alfabet. Itu harus menjadi desimal akurat untuk setidaknya 2 tempat desimal. Jika huruf besar muncul lebih sering, output harus diakhiri dengan uppercase
, atau lowercase
.
Tidak akan pernah ada jumlah huruf besar dan kecil yang sama.
Jawaban:
Pyth - 40 byte
Ini adalah pertama kalinya saya pernah menggunakan format string vektor yang sangat keren.
Test Suite .
sumber
JavaScript (ES6) 87 byte
Edit 1 byte disimpan thx ETHProduk
Edit 1 byte lebih disimpan thx l4me
Fungsi anonim. Lama, tapi saya tidak menemukan cara untuk bermain golf ini lagi
Kurang golf
sumber
&&` ${t-l>l?1-l/t+'upp':l/t+'low'}ercase`
.c=>l+=++t&&c>'Z'
apakah akan berhasil, saya pikir ...?CJam,
4745 byteCobalah online.
Tidak bermain golf terlalu lama ...
Penjelasan
sumber
Japt , 58 byte
(Catatan: SE menghapus char khusus, sebelumnya
Ö
, jadi silakan klik tautan untuk mendapatkan kode yang tepat)sumber
"[a-z]"
, dan yang kedua dengan"A-Za-z"
.0.5
sama dengan½
. Anda juga dapat menghapus tanda kutip akhir.A=Uf"[a-z]" l /Uf"[A-Za-z]" l)>½?A+" low":1-A+" upp" +`\x80ÖÐ
Anda dapat memperoleh versi mentah dari tiga byte terakhir denganOc"ercase
.\x80
tampaknya tidak melakukan apa-apa, danÖÐ
menghasilkan "case" ... Mungkin beberapa invisi-chars yang terpotong? Btw, berikan mod saya sendiri, terima kasih atas tipsnya"\w"
cukup cocokkan semuaw
, dan"\\w"
cocokkan semuaA-Za-z0-9_
. Jadi saya pikir Anda harus menjaga"[a-z]"
.R ,
133 123 118 108 106 106104 byteGolf turun 10 byte berkat @ ovs, 8 terima kasih kepada @Giuseppe, dan 10 lagi berkat @ngm. Pada titik ini, ini benar-benar upaya kolaborasi di mana saya memberikan byte dan yang lain melepasnya;)
Cobalah online!
sumber
MATL , 49
50byteMenggunakan versi bahasa saat ini (4.1.1) , yang lebih awal dari tantangan.
Contohnya
Penjelasan
sumber
Julia,
7674 byteIni adalah fungsi lambda yang menerima string dan mengembalikan string. Untuk menyebutnya, tetapkan ke variabel.
Tidak Disatukan:
Disimpan 2 byte berkat edc65!
sumber
ercase
bukannyacase
Perl 6 ,
91 70 69 6361 bytePemakaian:
sumber
C #, 135 byte
Membutuhkan:
Fungsi yang sebenarnya:
Dengan penjelasan:
sumber
Python 2,
114110 bytesumber
['upp','low'][n<.5]
dengan'ulpopw'[n<.5::2]
, dan 3 lainnya dengan mengganti[n,1-n][n<.5]
denganmax(n,1-n)
.Mathematica,
139105 byteKode Verbose menakutkan , tetapi saya harus hidup dengannya ...
sumber
PHP,
140129 karakterPutaran golf pertama saya - tidak terlalu buruk untuk bahasa 'standar', eh? :-)
Asli:
Dipendekkan menjadi 129 karakter berkat @manatwork:
Dengan komentar:
sumber
$u+=…
, saya kira Anda sudah memilikierror_reporting
default, jadi membungkam peringatan. Kemudian hapus beberapa kutipan:' '.($u<$l?low:upp).ercase
.for
, Anda bisa menghapus kawat gigi di sekitarnya.for($i=65;$i<91;$u+=$a[$i++])$l+=$a[$i+32];
for
inisialisasi variabel kontrol dengan memutar 0..26 alih-alih 65..91:for(;$i<26;$u+=$a[$i+++65])$l+=$a[$i+97];
Ruby, 81 + 1 = 82
Dengan bendera
-p
,Beruntung bahwa untuk angka antara 0 dan 1, pengurutan leksikografis sama dengan pengurutan numerik.
sumber
Gangguan Umum, 132 byte
Cobalah online!
sumber
Gema, 125 karakter
Contoh dijalankan:
sumber
Serius, 58 byte
Hex Dump:
Ini hanya berfungsi pada penerjemah yang dapat diunduh ... yang online masih rusak.
Penjelasan:
sumber
Pyth, 45 byte
Cobalah online. Suite uji.
Penjelasan
sumber
CoffeeScript, 104 karakter
coffeescript awalnya mencoba meneruskan nilai pengembalian yang dimaksudkan sebagai argumen ke nilai "r", yang gagal dan sangat menjengkelkan karena r adalah angka, bukan fungsi. Saya mengatasinya dengan menempatkan sebuah di
&&
antara pernyataan untuk memisahkan mereka.sumber
Pyth,
5453Satu byte disimpan berkat @Maltysen
Cobalah online
sumber
,<any><any>
adalah perintah dua arity yang sama seperti[<any><any>)
yang dapat menyelamatkan Anda byteRuby, 97 karakter
Contoh dijalankan:
sumber
05AB1E , 28 byte
Cobalah online!
sumber
Java 8,
136130 byte-6 byte membuat port jawaban @ProgramFOX 'C # .NET .
Cobalah online.
Penjelasan:
sumber
REXX, 144 byte
sumber
Perl 5
-p
, 72 byteCobalah online!
sumber
Kotlin , 138 byte
Kode
Pemakaian
sumber
Pyth,
4039 byteCoba di sini
Penjelasan
sumber
PowerShell Core ,
134128 byteCobalah online!
Terima kasih, Veskah , untuk menghemat enam byte dengan mengubah fungsi menjadi filter!
sumber
Tcl , 166 byte
Cobalah online!
sumber
APL (NARS), 58 char, 116 byte
uji:
sumber
C, 120 byte
tes dan hasil:
hasil
Itu kira set karakter Ascii.
sumber