Jika bilangan bulat memiliki angka / urutan digit di dalamnya yang berulang terus menerus (Anda akan mengerti mengapa saya mengatakan "terus menerus") 5 kali atau lebih, kami menyebutnya "Membosankan".
Misalnya, 11111
Membosankan, sedangkan 12345
tidak.
Instruksi
Ambil Integer sebagai Input
Keluarkan nilai yang benar jika bilangan bulat itu membosankan, dan nilai yang salah jika bilangan bulat itu tidak membosankan.
Contoh
11111
=> true
atau 1
(1 berulang 5 kali)
12345
=> false
atau0
1112111
=> false
atau0
4242424242
=> true
atau 1
(42 berulang 5 kali)
-11111
=> true
atau1
3452514263534543543543543543876514264527473275
=> true
atau 1
(543 berulang 5 kali)
Jika Anda menggunakan jenis "kebenaran" dan "salah" lainnya, sebutkan.
Aturan
Aturan main kode-golf berlaku.
Semoga berhasil!
1112111
membosankan?4242424242
membosankan?Jawaban:
05AB1E , 8 byte
Kode:
Penjelasan:
Kebenaran adalah bukan nol dan kepalsuan adalah nol. Menggunakan pengkodean CP-1252 .
Cobalah online!
sumber
Œ
dengan×
.Retina , 9 byte
Verifikasi semua testcases! (sedikit dimodifikasi untuk menjalankan semua testcass sekaligus.)
sumber
12345
(.+){5}
mengembang ke(.+)(.+)(.+)(.+)(.+)
sementara(.+)\1{4}
mengembang ke(.+)\1\1\1\1
.Java 8, 52 byte
Mengungguli jawaban Java 8 ini dengan langsung
String#matches
.Penjelasan:
Coba di sini.
sumber
Java 8,
7366 byte:Hore untuk lambda Jawa 8! Kembali
true
jika kecocokan ditemukan danfalse
sebaliknya.Cobalah secara Online! (Ideone)
sumber
Lua, 35 Bytes
Yah, saya tidak melihat bagaimana melakukan lebih baik dengan pola Lua! Mengambil argumen command-line sebagai input dan output
nil
untuk kasus falsy, dan nomor diulang saat kebenaran.sumber
JavaScript, 16 byte
Dalam node.js (60 byte)
Buang satu ton byte pada input / output.
JavaScript ES6 (33 byte)
Sekali lagi membuang-buang byte pada input / output.
Lebih disukai, sebagai fungsi anonim (22 byte)
Atau bahkan lebih pendek ( 16 byte )
Terima kasih @BusinessCat untuk menunjukkan kesalahan saya.
sumber
/(.+)\1{4}/.test(n)
alih-alihmatch
yang menyimpan beberapa byte. Juga tidak terlihat seperti ini akan benar-benar menghasilkan apa pun.Uncaught TypeError: Method RegExp.prototype.test called on incompatible receiver undefined
. Saya tidak yakin apakah itu secara teknis dianggap sebagai jawaban yang benar, bukankah harus seperti itu/./.test.bind(/(.+)\1{4}/)
?Python 3.5,
4943 byte:( -6 byte berkat tips dari Martin Ender ! )
Menggunakan Ekspresi Reguler untuk mencocokkan semua urutan karakter berulang selama mereka mengulangi terus menerus 5 kali atau lebih. Mengembalikan
re
objek kecocokan (seperti<_sre.SRE_Match object; span=(0, 10), match='4242424242'>
) jika kecocokan ditemukan sebagai nilai yang benar, dan tidak ada atauNone
sebagai nilai falsey.Cobalah secara Online! (Ideone)
sumber
{4,}
oleh{4}
?\1
dilakukan setelah grup regex?Perl,
1715 byte+
p
bendera.(dijalankan dengan
perl -pe '$_=/(.+)\1{4}/'
)Terima kasih kepada Dom Hasting untuk
(.+)
alih - alih(\d+)
.Penjelasan jika diperlukan:
(.+)
akan cocok dengan bagian mana pun dari nomor tersebut, dan\1{4}$
mencari apakah itu diulang 4 kali eksekutif.sumber
$_=/(\d+)\1{4}/
sebagai111112
membosankan tetapi ini tidak akan menangkapnya. Anda bahkan mungkin dapat menggunakan/./
sesuai jawaban Retina.C # -
9338 byteMengambil string, mengembalikan bilangan bulat.
Terima kasih kepada aloisdg karena telah menghemat banyak byte!
sumber
@"(.+)\1{4}"
bekerja sebagai regex juga? Apakah di lingkungan C # saya setidaknya.s=>Syst...
s=>new Regex(@"(.+)\1{4}").IsMatch(s);
Karena kita tetap di. NET (yang stdlib kami) dan kami tidak pernah menghitungusing System.Linq;
atauusing System.Collections.Generic
.Pyth ,
98 byteTerima kasih 1 byte untuk Maltysen.
Nilai sebenarnya adalah array yang tidak kosong.
Nilai Falsey adalah
[]
(array kosong).Suite uji.
sumber
m
denganf
dan mengeluarkan jumlahnya.Mathematica,
464036 byteFunction. Takes a string as input and outputs
True
orFalse
. Tests strings against the expressiona__~~a__~~a__~~a__~~a__
, which represents the same character sequence repeated 5 times. For reference, the shortest solution using a regex is 45 bytes long:curse you RegularExpression!
sumber
PHP,
3733 bytesterima kasih kepada NoOneIsHere, saya lupa
<?=
program untuk PHP <5.4, mencetak
1
untuk angka yang membosankan, yang0
lainpemakaian:
register_globals=1
dalamphp.ini
untuk php-cgithen call
php-cgi <filename> n=<number>;echo""
$n
dengan$_GET[n]
solusi non-regexp,
152147140 bytediganti
die(1)
dengan yang laindie(print 1)
dan tambahkanecho 0;
untuk mencetakshort_open_tags=1
jika dinonaktifkan$n+1
denganceil(strlen($n)/5)+1
atau setidaknya denganstrlen($n)
untuk pengujian atau mungkin loop seperti selamanya.sumber
<?=preg_match
... beberapa karakter lebih pendekHaskell, 80 (63?)
Ini akan menjadi 63 jika tidak ada pernyataan impor.
Pemakaian
By the way, berturut-turut lebih masuk akal bagi saya daripada terus menerus.
(Maaf, saya belum bisa berkomentar.)
sumber
MATLAB, 26 atau 13 byte
ini membutuhkan variabel integer 'i'. Sebuah string hanyalah bagian terakhir:
Saya telah menghitung baris baru sebagai karakter.
sumber
i=input('')
atau buat semuanya berfungsi (mis.@(i)...
). BTW, saya tidak berpikir itu akan terlalu berat untuk mengambil bilangan bulat sebagai string. PS Saya pikir itu gagal untuk test case terakhir dan juga sederhana211111
.TSQL, 151 byte
Golf:
Tidak Disatukan:
Biola
sumber
PowerShell, 26 byte
Saya sama sekali tidak master regex, jadi kredit untuk jawaban lain untuk itu.
sumber
Clojure, 24 byte
Menggunakan nilai-nilai kepalsuan clojure tentang
nil
/false
dan nilai-nilai kebenaran untuk semua hal lainnya. Khususnya,nil
ketika tidak ada kecocokan yang ditemukan untuk false, dan sebuah array[]
untuk true ketika kecocokan ditemukan seperti untuk 11111 maka["11111" "1"]
itu benar.sumber
JS tanpa regex, 166
tidak diperkecil:
sumber