ข้อมูลทั่วไป:
งานของคุณคือการป้อนข้อมูล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
?- คุณสามารถเลือกตัวคั่นใดก็ได้ที่เหมาะกับแพลตฟอร์มของคุณ ภาษาส่วนใหญ่จัดการสิ่งนี้โดยไม่มีรหัสการกำหนดพิเศษ
- ฉันจำเป็นต้องพิมพ์เครื่องหมายจุลภาคต่อท้ายหรือไม่หากไม่พบคอลัมน์สองสามคอลัมน์สุดท้าย
- ใช่. ดูตัวอย่าง
- ตัวแยกวิเคราะห์ CSV หรือเครื่องมือภายนอกอื่น ๆ ที่คล้ายกันได้รับอนุญาตหรือไม่
- ไม่คุณต้องวิเคราะห์ข้อมูลด้วยตัวเอง