Saya masuk ke golf code baru-baru ini dan mencoba menulis pemeriksa tautogram terkecil.
Sebuah tautogram adalah kalimat di mana semua kata dimulai dengan huruf yang sama, misalnya: Bunga berkembang dari Perancis .
Diberi kalimat sebagai input, tentukan apakah itu tautogram.
Uji Kasus
Flowers flourish from France
True
This is not a Tautogram
False
Saya datang dengan kode python ini (karena ini adalah bahasa utama saya):
print(True if len(list(set([x.upper()[0] for x in __import__('sys').argv[1:]]))) == 1 else False)
Pemakaian:
python3 tautogram.py Flowers flourish from France
# True
python3 tautogram.py This is not a Tautogram
# False
Kalimat tersebut dapat berisi koma dan titik, tetapi tidak ada karakter khusus lainnya, hanya huruf dan spasi huruf besar dan kecil.
Ukurannya adalah 98 byte. Apakah ada solusi yang lebih kecil dalam bahasa apa pun?
code-golf
string
decision-problem
Jaime Tenorio
sumber
sumber
tips
pertanyaan terbatasPython
? Jika demikian, kedua tag ini harus ditambahkan.Jawaban:
05AB1E , 5 byte
Cobalah online!
Apakah ini di ponsel alasan tidak ada penjelasan.
sumber
Python 2 , 47 byte
Cobalah online!
Datang dengan ini di ponsel. Mungkin bisa bermain golf lebih banyak.
sumber
Clojure , 80 byte
Cobalah online! . TIO tidak mendukung pustaka String standar Clojure, jadi versi pertama akan menampilkan kesalahan "Tidak dapat menemukan huruf kecil".
Tidak Disatukan:
Saya membuat versi yang menghindari impor:
Tapi itu 112 Bytes .
sumber
(define(f s)(apply char=?(map(λ(x)(char-upcase(car(string->list x))))(string-split s))))
(de f(s)(apply =(mapcar car(split(chop(lowc s))" "))))
PowerShell ,
575041 byteCobalah online!
Mengambil input dan
split
menyimpannya di spasi putih. Ulangi setiap kata, dan ambil huruf pertama dengan mengambils
ubstring
mulai dari posisi0
dan pergi untuk1
karakter. Kemudiansort
, huruf-hurufnya (tidak peka huruf besar-kecil) dengan-u
bendera nique untuk mengeluarkan hanya satu salinan dari setiap huruf, dan memverifikasi bahwacount
nama-nama itu sudah ada-eq
sejak awal1
. Output tersirat.-9 byte berkat mazzy.
sumber
05AB1E (warisan) , 5 byte
Cobalah online!
sumber
Brachylog , 5 byte
Cobalah online!
sumber
Haskell , 71 byte
Cobalah online!
Haskell ,
6158 byte (menggunakanData.Char.toLower
)Cobalah online!
sumber
Perl 5 (
-p
), 20 byteTIO
mengikuti komentar jika tanda baca buruk (31 byte)
31 byte
kalau tidak ada pendekatan lain, juga dengan 31 byte:
31 byte lainnya
sumber
$_=!/^\W*+(.).*(?=\b\w)(?!\1)/i
JavaScript (Node.js) , 54 byte
Cobalah online!
Atau 47 byte jika setiap kata (tetapi yang pertama) dijamin akan didahului oleh spasi.
sumber
\W
test
menghemat byte lain.Japt
-¡
, 5 byteCobalah
sumber
C # (Visual C # Interactive Compiler) , 41 byte
Melempar pengecualian jika salah, tidak ada jika benar.
Cobalah online!
sumber
Perl 6 , 19 byte
Cobalah online!
sumber
Java, (36 byte)
TIO
sumber
(?> *)
, menggunakan grup atom untuk mencocokkan ruang di awal dan untuk mengupas bactracking. hanya `*` tidak berfungsi karena setelah pertandingan gagal akan mundur `*` untuk mencocokkan string kosong