เพื่อนของคุณไม่ดีกับคอมพิวเตอร์ดังนั้นเป็นเรื่องตลกในทางปฏิบัติใครบางคนกวนตัวอักษร (az) บนแป้นพิมพ์ของเขา เมื่อเขานั่งลงและพยายามพิมพ์ชื่อของเขาดูที่แป้นพิมพ์เขาก็ตระหนักว่าตัวอักษรดังกล่าวมีสัญญาณรบกวนและขอความช่วยเหลือจากคุณ
คุณฉลาดเพื่อให้คุณรู้ว่าถ้าเขาพิมพ์ชื่อของเขาและจากนั้นพิมพ์ซ้ำสิ่งที่เกิดขึ้นบนหน้าจอแทนชื่อของเขาเขาจะประสบความสำเร็จในการป้อนชื่อของเขาในที่สุด คุณยังใจดีและจัดเรียงกุญแจใหม่อีกครั้ง แต่ต้องการทราบว่าจะต้องใช้เวลากี่ครั้งในการประสบความสำเร็จ
งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ให้ตัวอักษรสับและชื่อของเพื่อนคำนวณจำนวนรอบ
รายละเอียดการป้อนข้อมูล:
- มีการให้สองสตริงเป็นอินพุตในโครงสร้างที่สะดวกสำหรับภาษาของคุณ
- สตริงแรกคือรายการของตัวอักษรตัวพิมพ์เล็กใหม่ตามลำดับตัวอักษรของตัวอักษรเก่า (อักขระตัวแรกคือตัวอักษรที่อยู่ที่ตำแหน่งตัวอักษรตัว
a
สุดท้ายอยู่ที่ตำแหน่งz
) การเปลี่ยนแปลงบางอย่างจะเกิดขึ้นในสตริงเสมอ - สตริงที่สองคือชื่อ มันสามารถมีตัวอักษร ASCII ที่พิมพ์ได้ใด ๆ แต่ตัวอักษรตัวอักษรบนและล่างจะถูกสับถ้ามี ชื่อตัวเองอาจไม่ได้สับที่อัล
รายละเอียดผลลัพธ์:
- เอาท์พุทเป็นจำนวนเต็มเดียวจำนวนการเลี้ยวที่ต้องการน้อยที่สุด ขึ้นบรรทัดใหม่เป็นตัวเลือก
ตัวอย่าง:
อินพุต:
'abcfdeghijklmnopqrstuvwxyz' 'Mr. John Doe'
(d, e, f เปลี่ยนตำแหน่ง)
เอาต์พุต:
3
(ชื่อที่แสดงคือ: Mr. John Fod
=> Mr. John Eof
=> Mr. John Doe
)
อินพุต:
'nopqrstuvwxyzabcdefghijklm' 'Mr. John Doe'
( รหัส ROT13 )
เอาท์พุท:
2
(ชื่ออินพุตใด ๆ ที่มีตัวอักษรจะใช้เวลา2
ในการสร้างชื่อเดิม)
การป้อนข้อมูล:
'aebcdjfghiqklmnopzrstuvwxy' 'John Doe'
เอาท์พุท:
140
นี่คือรหัสกอล์ฟเพื่อให้รายการที่สั้นที่สุดชนะ
EOF
เป็นที่น่าอัศจรรย์อย่างสิ้นเชิง!
aebcdjfghiqklmnopzrstuvwxy
(เอาท์พุท 1260 สำหรับMr John Doe
) นี่คือค่าสูงสุดที่เป็นไปได้ - ประกอบด้วยรอบคำสั่ง 4, 5, 7, 9 (และไม่เปลี่ยนแปลงa
) และชื่อทุกชื่อที่มีตัวอักษรอย่างน้อยหนึ่งตัวจากแต่ละรอบจะให้ผล 1260 และฉันเดาว่าการใช้ตัวอักษรเป็นอินพุต หรือการใช้ชื่อที่ไม่ได้รับผลกระทบก็เป็นตัวเลือกที่สำคัญเช่นกัน