ท้าทาย:
ฉันมีเพลงหลายพันเพลงในคอลเลกชันเพลงของฉันและโชคดีสำหรับฉันผู้เล่นที่ชื่นชอบมีฟังก์ชั่นการค้นหา ฉันยังมีความทรงจำที่ยอดเยี่ยม - ฉันจำชื่อเพลงทุกเพลงในคอลเลคชั่นของฉันได้ อย่างไรก็ตามฉันขี้เกียจมากและไม่ชอบที่จะพิมพ์ - การกดแป้นพิเศษแต่ละครั้งเป็นงานที่น่าเบื่อ!
- สตริงที่สั้นที่สุดที่ฉันต้องค้นหาคือแยกหนึ่งเพลงคืออะไร ช่วยฉันจำรายการคีย์ที่ฉันสามารถใช้เพื่อลดการพิมพ์เมื่อค้นหา!
นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดจึงชนะ
กฎ:
กำหนดรายการอินพุตของชื่อเพลงสร้างรายการคีย์ค้นหาภายใต้ข้อ จำกัด ต่อไปนี้:
- ชื่อเพลงแต่ละชื่อควรมีคีย์ค้นหา
- จำนวนอักขระทั้งหมดในรายการผลลัพธ์ต้องน้อยที่สุดเท่าที่จะทำได้
- เครื่องเล่นเพลงที่ฉันชอบคือfoobar2000 :
- ฟังก์ชันการค้นหาไม่คำนึงถึงขนาดตัวพิมพ์ (
apple
เหมือนกับaPpLE
) - แต่ละคีย์การค้นหาจะต้องประกอบด้วย "คำ" อย่างน้อยหนึ่งคำตามลำดับใด ๆ คั่นด้วยช่องว่าง:
- แต่ละคำจะต้องเป็นสตริงย่อยของชื่อเพลงที่เกี่ยวข้อง
- หากมีการระบุซับสตริงเดียวกันหลายครั้งจะต้องเกิดขึ้นหลายครั้งในชื่อเพลงที่เกี่ยวข้อง
- หากสตริงย่อยมีช่องว่างสตริงย่อยนั้นจะต้องล้อมรอบด้วยเครื่องหมายคำพูด
- ฟังก์ชันการค้นหาไม่คำนึงถึงขนาดตัวพิมพ์ (
คำแนะนำ:
- บ่อยครั้งสำหรับชื่อเพลงบางเพลงมีกฎการประชุมหลายคีย์การประชุม 2 ในกรณีเช่นนี้คีย์ใดคีย์หนึ่งจะทำ แต่คุณจะได้รับคะแนนบราวนี่เพื่อแสดงรายการทั้งหมด
- คุณอาจคิดว่ารายการอินพุตจะเป็นอักขระ ASCII เท่านั้น แต่คะแนนบราวนี่จะได้รับรางวัลสำหรับความเข้ากันได้ UTF-8
- กฎ 3 ยากต่อการติดตามหรือไม่ นี่คือวิธีการทำงาน:
ตัวอย่าง:
หากคอลเล็กชันเพลงของฉันมีเพียงสองอัลบั้มเท่านั้นOff the Wall and Thrilerของ Michael Jackson :
คุณสามารถใช้รายการด้านบนเพื่อทดสอบโปรแกรมของคุณ นี่คือรุ่น raw ของรายการที่สอง:
["Don't Stop 'Til You Get Enough","Rock with You","Working Day and Night","Get on the Floor","Off the Wall","Girlfriend","She's out of My Life","I Can't Help It","It's the Falling in Love","Burn This Disco Out","Wanna Be Startin' Somethin'","Baby Be Mine","The Girl Is Mine","Thriller","Beat It","Billie Jean","Human Nature","P.Y.T. (Pretty Young Thing)"]
["Wanta Be A Wanna B","Wanta Bea A Wanna B","Wanna Be A Wanna Bea"]
ล่ะ