เขียนฟังก์ชั่นหรือโปรแกรมที่เมื่อได้รับรายชื่อส่งออกหรือส่งกลับรายการที่ซ้ำกันของชื่อที่กำหนดมีรุ่นย่อที่ไม่ซ้ำกันของนามสกุลของพวกเขา
การป้อนข้อมูล:
รายการชื่อที่ชื่อถูกกำหนดโดยชื่อที่กำหนดและนามสกุลคั่นด้วยช่องว่าง ชื่อเป็นสตริงที่ไม่ว่างที่มีตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเท่านั้น รายการสามารถเป็นอาร์เรย์ของสตริงหรือชื่อที่คั่นด้วยอักขระที่ไม่ใช่ alpha, non-space คงที่ แต่เอาต์พุตต้องอยู่ในรูปแบบเดียวกับอินพุต
เอาท์พุท:
รายการของชื่ออินพุตในลำดับและรูปแบบเดียวกันกับอินพุตที่แก้ไขโดยกฎเหล่านี้:
- สำหรับชื่อที่กำหนดไม่ซ้ำกันให้ส่งออกเฉพาะชื่อที่กำหนด
- สำหรับชื่อที่ใช้ชื่อเดียวกัน:
- เช่นเดียวกับชื่อที่ให้เพิ่มนามสกุลที่เป็นเอกลักษณ์สั้นที่สุดที่ไม่ได้ใช้ร่วมกับชื่ออื่นแล้วตามด้วยจุด ตัวอย่างเช่น:
John Clancy, John Smithกลายเป็นJohn C.,John S.และJames Brown, James Bratteกลายเป็นJames Bro.,James Bra. - หากนามสกุลหนึ่งเป็นชุดย่อยของอีกเช่น
Julian King,Julian Kingsleyส่งคืนนามสกุลเต็มของขนาดเล็กโดยไม่มีจุด ตัวอย่างจะกลายเป็นJulian King,Julian King.
- เช่นเดียวกับชื่อที่ให้เพิ่มนามสกุลที่เป็นเอกลักษณ์สั้นที่สุดที่ไม่ได้ใช้ร่วมกับชื่ออื่นแล้วตามด้วยจุด ตัวอย่างเช่น:
- โดยทั่วไปจุดจะแสดงถึง regex
.+โดยที่มีเพียงชื่อเดียวเท่านั้นที่ควรจับคู่ - คุณอาจคิดว่าจะไม่มีใครแชร์ทั้งชื่อและนามสกุลเดียวกัน
- ชื่อเป็นกรณี ๆ ไป
กรณีทดสอบ:
John Clancy,Julie Walker,John Walker,Julie Clancy->John C.,Julie W.,John W.,Julie C.Julian King,Jack Johnson,Julian Kingsley>Julian King,Jack,Julian King.Jack Brown,Jack Black,Jack Blue>Jack Br.,Jack Bla.,Jack Blu.John Storm,Jon Snow,Johnny Storm>John,Jon,JohnnyJill DeSoma,Jill Desmond>Jill DeS.,Jill Des.XxXnO sCOppeXxX,XxXNO MERCYXxX>XxXnO,XxXNO
นี่คือโค้ดกอล์ฟดังนั้นจำนวนไบต์ต่ำสุดสำหรับแต่ละภาษาจะชนะ
Angela C.มาจากไหน?
Julieโอ๊ะโอขอบคุณ แก้ไขแล้ว