pengantar
Bob suka memiliki kata sandi yang berbeda untuk setiap situs web yang ia gunakan. Dia ingin kata sandi dalam format khusus sehingga dia bisa mengingat. Bantu dia dengan membuat generator kata sandi yang sesingkat mungkin dalam panjang kode, karena dia suka menyimpan barang sesingkat namanya.
Tantangan
Buat Bob generator kata sandi yang mengambil empat parameter -
- Alamat domain, (mis: stackexchange.com)
- Nama depan,
- nama keluarga,
- Tanggal dan tahun lahir.
dan menghasilkan string yang telah mengalami transformasi berikut.
Setiap kata sandi memiliki templat yang didasarkan pada l panjang nama domain. Jika l adalah prima maka templatnya adalah dari bentuk ini -
[birth-date][domain-name][lastname][birth-year][symbol]
selain itu dari formulir ini -
[symbol][birth-year][firstname][domain-name][birth-date]
.
Bidang simbol akan memiliki nilai berdasarkan tipe domain.
.com -> $$$ .org -> &&& .net -> %%% .edu -> +++ .gov -> @@@ .mil -> >>> default -> ~~~
Sekarang, ia juga ingin menjalankan cesar caesar di atas bidang - [firstname][domain-name][lastname]
. Arah pergeseran tepat jika aku adalah yang utama itu kiri. Nilai shift ditentukan oleh nilai penambahan tanggal lahir dan tahun.
Setelah proses di atas, teks tidak dapat dengan mudah diingat sehingga ia ingin teks yang diacak itu dapat diucapkan. Untuk melakukan ini ia ingin mengganti setiap konsonan ketiga berturut-turut dengan vokal dalam urutan abjad (yaitu, aeiou
).
Akhirnya, ia ingin menghapus kejadian berturut-turut dari huruf yang sama.
Contoh
Masukan - stackexchange.com bob williams 0894 Output - 08qraicvafyecugjigyoq94 $$$.
Penjelasan:
Templat kata sandi adalah [birth-date][domain-name][lastname][birth-year][symbol]
, karena panjang nama domain stackexchange
adalah yang utama. Simbol akan berupa $$$
tipe domain .com
.
Mari kita mengisi nilai-nilai itu di templat - 08stackexchangewilliams94$$$
. Sekarang caesar cipher harus dijalankan di bidang [firstname][domain-name][lastname]
(hanya nama belakang dalam kasus ini). Arah shift benar karena l adalah prima dan nilai shift adalah 08+94 = 102
.
Jadi, 08stackexchangewilliams94$$$
berubah menjadi 08qryaicvafylecugjjgykq94$$$
. Sekarang setiap konsonan ketiga berturut-turut diganti dengan vokal - 08qraaicvafyeecugjigyoq94$$$
setiap kali berturut-turut huruf yang sama dihapus - 08qraicvafyecugjigyoq94$$$
. Jangan khawatir itu bisa diucapkan untuk Bob.
informasi tambahan
- Alamat domain, nama depan dan nama belakang hanya berisi huruf kecil.
- Alamat domain akan selalu hanya terdiri dari domain level kedua dan level atas, suka
stackexchange.com
dan tidakcodegolf.stackexchange.com
. Juga, domain seperti.co.uk
tidak diizinkan tetapi adil.uk
atau.in
valid. - Penggantian vokal dalam urutan abjad adalah siklik. Maksud saya setelah
u
,a
digunakan untuk menggantikan. - Rentang ASCII untuk cipher Caesar adalah 97 - 122 inklusif.
- Anda dapat mengambil input seperti yang dijelaskan di sini .
- Output harus berupa string.
- Format tanggal dan tahun lahir adalah
dd
danyy
. Jadi02
dapat diterima dan2
tidak.
Ini adalah kode-golf, jadi kode terpendek dalam byte menang. Selamat Golf!
0894
yang menambahkan hingga 102
tetapi penjelasan menggunakan 08+96=106
. Teks ciphered tampaknya menggunakan 102
nilai. Hanya sedikit ketidakkonsistenan yang bisa membingungkan ...
defualt
tidak mengetikdefault
stackexchange.com
, bukanimg.stackexchange.com
? Bagaimana dengan domain negarabbc.co.uk
?