คำถามนี้จะขึ้นอยู่กับคำถามที่ผมถามในภาษาสเปน ใช่ฉันขออัลกอริทึมเป็นภาษาสเปน :)
ในสเปนแผ่นป้ายทะเบียนปัจจุบันมีรูปแบบดังนี้:
1234 XYZ
ที่ XYZ เป็นพยัญชนะสามตัวที่นำมาจากชุดพยัญชนะสเปนเต็มรูปแบบ (ยกเว้น 'Ñ' ฉันคิดว่า)
บางครั้งเมื่อเดินทางกับภรรยาของฉันเรามักจะเล่นเกม เมื่อเราเห็นป้ายทะเบียนเราใช้พยัญชนะสามตัวและพยายามสร้างคำที่มีพยัญชนะทั้งสามปรากฏตามลำดับเดียวกันกับในแผ่นป้ายทะเบียน ตัวอย่าง (เป็นภาษาสเปน):
BCD
BoCaDo (valid)
CaBezaDa (not valid)
FTL
FaTaL (valid)
FLeTar (not valid)
FTR
FleTaR (valid, wins)
caFeTeRa (valid, loses)
ผู้ชนะคือผู้ที่ใช้จำนวนอักขระน้อยที่สุดอย่างที่คุณเห็นในตัวอย่างสุดท้าย
ความท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่สั้นที่สุดที่ได้รับรายการคำและชุดของพยัญชนะสามตัวและค้นหาคำที่สั้นที่สุดในรายการที่มีพยัญชนะสามตัวตามลำดับเดียวกัน สำหรับจุดประสงค์ของเกมนี้เคสไม่สำคัญ
- อินพุตสำหรับรายการคำ (พารามิเตอร์แรก) จะเป็นอาร์เรย์ของ
string
ประเภทภาษาของคุณ พารามิเตอร์ที่สอง (สามพยัญชนะ)string
จะเป็นอีก หากดีกว่าสำหรับภาษาของคุณให้ลองstring
ใช้ตัวอักษรสามตัวในรายการสุดท้ายของรายการพารามิเตอร์ทั้งหมดstring
การส่งออกจะเป็นอีก - คำในรายการคำจะไม่ถูกประดิษฐ์หรือคำที่ไม่มีที่สิ้นสุดพวกเขาจะคำที่ปรากฏในพจนานุกรมมาตรฐานใด ๆ หากคุณต้องการขีด จำกัด สมมติว่าไม่มีคำใดในรายการคำที่มีความยาวเกิน 50 อักขระ
- หากมีหลายคำที่มีความยาวเท่ากันซึ่งอาจเป็นคำตอบที่ถูกต้องคุณสามารถคืนหนึ่งคำใด ๆ ตรวจสอบให้แน่ใจว่าคุณส่งคืนคำเดียวหรือสตริงว่างถ้าไม่มีคำที่ตรงกับรูปแบบของพยัญชนะสามตัว
- คุณสามารถทำซ้ำพยัญชนะในกลุ่มดังนั้นปัจจัยการผลิตที่ถูกต้องสำหรับสามพยัญชนะทั้งสองและ
FLR
GGG
- เสียงพยัญชนะภาษาสเปนเหมือนกันทุกประการกับภาษาอังกฤษด้วยการเพิ่ม "Ñ" เสียงสระที่เหมือนกันกับ adition ของเสียงสระเครียด: "áéíóúü" จะไม่มีเครื่องหมายประเภทอื่นเช่น "-" หรือ "'"
- คุณสามารถสมมติว่ากรณีและปัญหาจะเหมือนกันทั้งในรายการคำและพยัญชนะทั้งสาม
หากคุณต้องการทดสอบอัลกอริทึมของคุณด้วยชุดคำศัพท์ภาษาสเปนจริง ๆ คุณสามารถดาวน์โหลดไฟล์ (15.9 MB) จาก Dropboxด้วยคำศัพท์กว่าล้านคำ
กรณีทดสอบ
Input: 'psr', {'hola' 'repasar' 'pasarais' 'de' 'caída' 'pequeñísimo' 'agüeros'}
Output: 'repasar'
Input: 'dsd', {'dedos' 'deseado' 'desde' 'sedado'}
Output: 'desde'
Input: 'hst', {'hastío' 'chest'}
Output: 'chest'
นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดอาจช่วยให้ฉันชนะภรรยาของฉันได้เสมอ! :)