จัดเรียง CSV
ข้อมูลทั่วไป: งานของคุณคือการป้อนข้อมูลkey=valueแบบCSV ในรูปแบบและจัดเรียงให้เป็นระเบียบมากขึ้น (ดูด้านล่าง) การป้อนข้อมูล: เสมอผ่านstdin บันทึกจะอยู่ในรูปแบบต่อไปนี้key=value: foo=bar,baz=quux abc=123,foo=fubar baz=qwe,abc=rty,zxc=uiop,foo=asdf จะไม่มีรายการของคีย์ที่เป็นไปได้ล่วงหน้าคุณต้องค้นหาพวกเขาในข้อความที่ป้อน ในตอนท้ายของการป้อนข้อมูลจะถูกส่งสัญญาณโดยEOFการดำเนินการใด ๆEOFที่เหมาะสมสำหรับระบบปฏิบัติการของคุณ เอาท์พุท: แถวแรกของเอาต์พุตของคุณจะเป็นรายการของคีย์ทั้งหมดตามลำดับตัวอักษร (แม้ว่าคีย์จะเป็นตัวเลขทั้งหมด) หลังจากนั้นให้พิมพ์แต่ละระเบียนในรูปแบบ CSV เดียวกันกับส่วนหัวของตัวเลขที่เหมาะสมโดยไม่มีคีย์ที่แสดงรายการ ดังนั้นสำหรับตัวอย่างข้างต้นผลลัพธ์ที่ถูกต้องคือ: abc,baz,foo,zxc ,quux,bar, 123,,fubar, rty,qwe,asdf,uiop คำถามที่พบบ่อย: ฉันต้องกังวลเกี่ยวกับรูปแบบการป้อนข้อมูลที่ไม่เหมาะสมหรือไม่? ไม่โปรแกรมของคุณอาจทำสิ่งที่มันต้องการ (โยนข้อยกเว้นเพิกเฉย ฯลฯ ) หากรูปแบบการป้อนข้อมูลไม่ถูกต้องเช่นบรรทัด foo,bar,baz ฉันจะจัดการกับการหลบหนีอักขระพิเศษได้อย่างไร คุณอาจคิดว่าจะไม่มีข้อมูลเพิ่มเติม,หรือ=ในข้อมูลที่ไม่ได้เป็นส่วนหนึ่งของkey=valueรูปแบบ "ไม่มีความหมายพิเศษใด ๆ ในการแข่งขันนี้ (แม้ว่าจะใช้ในรูปแบบ CSV แบบดั้งเดิม) ก็ไม่ได้พิเศษ แต่อย่างใด เส้นควรตรงกับ regex ต่อไปนี้: ^([^=,]+=[^=,]+)(,[^=,]+=[^=,]+)*$ ดังนั้นทั้งคีย์และค่าจะตรงกัน [^=,]+ สิ่งที่เกี่ยวCRLFกับLF? คุณสามารถเลือกตัวคั่นใดก็ได้ที่เหมาะกับแพลตฟอร์มของคุณ …