Teman Anda tidak terlalu pandai menggunakan komputer sehingga sebagai lelucon praktis seseorang mengacak-acak huruf (az) di keyboard-nya. Ketika dia duduk dan mencoba mengetik namanya sambil melihat keyboard, dia menyadari bahwa huruf-hurufnya berantakan dan meminta bantuanmu.
Anda cerdas sehingga Anda tahu bahwa jika ia mengetik namanya dan berulang kali mengetik ulang apa yang muncul di layar alih-alih namanya, ia akan berhasil memasukkan namanya pada akhirnya. Anda juga baik dan mengatur kembali kunci tetapi ingin tahu berapa banyak putaran yang diperlukan untuk berhasil.
Tugas Anda adalah menulis program atau fungsi yang memberikan pengocokan huruf-huruf dan nama teman menghitung jumlah belokan.
Detail input:
- Dua string diberikan sebagai input dalam struktur yang nyaman untuk bahasa Anda.
- String pertama adalah daftar huruf kecil baru dalam urutan abjad dari yang lama. (Karakter pertama adalah karakter yang ada di posisi
a
, karakter terakhir ada di posisiz
.) Beberapa perubahan akan selalu terjadi dalam string. - String kedua adalah namanya. Ini dapat berisi karakter ascii yang dapat dicetak tetapi hanya karakter alfabet huruf besar dan kecil yang akan dikocok jika ada. Nama itu sendiri mungkin tidak dikocok di al.
Rincian keluaran:
- Output adalah bilangan bulat tunggal jumlah belokan minimal yang diperlukan. Baris baru adalah opsional.
Contoh:
Input:
'abcfdeghijklmnopqrstuvwxyz' 'Mr. John Doe'
(d, e, f posisi berubah)
Output:
3
(Nama yang ditampilkan adalah: Mr. John Fod
=> Mr. John Eof
=> Mr. John Doe
)
Input:
'nopqrstuvwxyzabcdefghijklm' 'Mr. John Doe'
( cipher ROT13 )
Output:
2
(Setiap nama input yang berisi huruf akan mengambil 2
putaran untuk menghasilkan nama asli.)
Memasukkan:
'aebcdjfghiqklmnopzrstuvwxy' 'John Doe'
Keluaran:
140
Ini adalah kode-golf sehingga entri terpendek menang.
EOF
sangat menakjubkan!
aebcdjfghiqklmnopzrstuvwxy
(output 1260 untukMr John Doe
). Ini adalah maksimum yang mungkin - ini terdiri dari siklus urutan 4, 5, 7, 9 (dan tidak berubaha
), dan setiap nama yang mengandung setidaknya satu huruf dari setiap siklus akan menghasilkan 1260. Dan saya kira mengambil alfabet itu sendiri sebagai input atau menggunakan nama yang tidak terpengaruh juga merupakan kasus tepi yang penting.