เขียนฟังก์ชั่นหรือโปรแกรมที่เมื่อได้รับรายชื่อส่งออกหรือส่งกลับรายการที่ซ้ำกันของชื่อที่กำหนดมีรุ่นย่อที่ไม่ซ้ำกันของนามสกุลของพวกเขา
การป้อนข้อมูล:
รายการชื่อที่ชื่อถูกกำหนดโดยชื่อที่กำหนดและนามสกุลคั่นด้วยช่องว่าง ชื่อเป็นสตริงที่ไม่ว่างที่มีตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเท่านั้น รายการสามารถเป็นอาร์เรย์ของสตริงหรือชื่อที่คั่นด้วยอักขระที่ไม่ใช่ 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,Johnny
Jill DeSoma,Jill Desmond
>Jill DeS.,Jill Des.
XxXnO sCOppeXxX,XxXNO MERCYXxX
>XxXnO,XxXNO
นี่คือโค้ดกอล์ฟดังนั้นจำนวนไบต์ต่ำสุดสำหรับแต่ละภาษาจะชนะ
Angela C.
มาจากไหน?
Julie
โอ๊ะโอขอบคุณ แก้ไขแล้ว