Salah satu aspek pengujian kekuatan kata sandi adalah penggunaan huruf yang berdekatan pada keyboard. Dalam tantangan ini, sebuah program harus dibuat yang kembali true
jika string berisi setiap berlari huruf yang berdekatan.
Apa yang dianggap sebagai serangkaian huruf yang berdekatan?
Untuk versi sederhana dari penguji kekuatan kata sandi ini, serangkaian karakter yang berdekatan adalah 3 atau lebih huruf yang bersebelahan dalam satu arah (kiri, kanan, atas atau bawah) pada keyboard QWERTY. Untuk tujuan tantangan ini tata letak keyboard terlihat seperti ini:
1234567890
QWERTYUIOP
ASDFGHJKL
ZXCVBNM
Dalam diagram di atas Q
ada di bawah 1
tetapi tidak di bawah 2
, jadi string yang berisi 1qa
atau di aq1
mana saja di dalamnya akan membuat program kembali true
, tetapi 2qa
tidak mau.
Memasukkan
Kata sandi untuk diperiksa. Itu hanya akan berisi karakter [0-9a-z]
atau [0-9A-Z]
(pilihan Anda).
Keluaran
Program harus mengembalikan nilai kebenaran jika kata sandi berisi satu atau lebih proses dari kunci yang berdekatan, atau salah jika tidak ada.
Contohnya
Input berikut harus menghasilkan true:
asd
ytrewq
ju7
abc6yhdef
Dan input ini seharusnya menghasilkan false:
abc
aaa
qewretry
zse
qwdfbn
pas
Aturan
- Jawaban dapat berupa program atau fungsi yang lengkap.
- Celah standar tidak diijinkan.
- Ini adalah kode-golf , skor terendah (dalam byte) menang!
Jawaban:
Pyth -
666260 bytePendekatan yang cukup mudah. Memeriksa apakah ada substring len 3 yang ada di salah satu rotasi keyboard. Akan menggunakan pengkodean dasar untuk keyboard.
Test Suite .
sumber
Japt , 78 byte
Japt adalah versi singkat dari Ja vaScri pt . Penerjemah
Output
0
untuk kasus falsey; jika tidak, bilangan bulat positif. Itu?
harus diganti dengan Unicode char U + 0086 yang tidak dapat dicetak, atau jika Anda tidak ingin mengalami semua masalah itu, cukupas
.Bagaimana itu bekerja
sumber
C #, 227
0 is falsey, 1 is true. Menyatukan semua tombol horizontal dan vertikal, dan terbalik, dan memeriksa apakah ada 3 karakter input yang terkandung di dalamnya.
C # benar-benar bertele-tele, harus menyelam ke bahasa lain :(
sumber
PHP, 173 +1 byte
Jalankan sebagai pipa dengan
-nR
input huruf kecil atau coba online .sumber
Clojure, 156 byte
Ini adalah tugas yang cukup menarik untuk diimplementasikan.
sumber