ความท้าทายนี้ประกอบด้วยสองส่วน ผู้ชนะจะได้รับการแก้ไขด้วยจำนวนไบต์ต่ำสุดทั้งหมด ต้องใช้ภาษาเดียวกันทั้งสองข้อ
ส่วนที่ 1:
เขียนฟังก์ชั่นหรือโปรแกรมที่ใช้ประโยคที่มีเพียงคำที่ถูกต้องเป็นอินพุตและส่งออกรายการของอักขระที่ใช้จำนวนครั้งที่ใช้ตัวอักษรแต่ละตัวและจำนวนตัวอักษรในแต่ละคำในประโยคต้นฉบับ เอาต์พุตจากโปรแกรมนี้ต้องเป็นอินพุตที่ถูกต้องไปยังโปรแกรมถัดไป (เหมือนกับที่เอาต์พุต)
ฉันจะเพิ่มตัวอย่างและกฎโดยละเอียดเพิ่มเติม
ส่วนที่ 2:
เขียนฟังก์ชั่นหรือโปรแกรมที่ใช้เอาต์พุตจากโปรแกรมแรกเป็นอินพุตและใช้รายการคำศัพท์ภาษาอังกฤษนี้และสร้างประโยคใหม่ด้วยข้อมูลจากเอาต์พุต ประโยคไม่จำเป็นต้องเหมือนกับประโยคต้นฉบับ
ข้อมูลมากกว่านี้. กฎและข้อ จำกัด :
ส่วนที่ 1:
- อินพุตแรกสามารถอยู่ในรูปแบบที่เหมาะสมโดยมีหรือไม่มีเครื่องหมายอัญประกาศเป็นอาร์กิวเมนต์ฟังก์ชันหรือจาก STDIN โดยมีหรือไม่มีเครื่องหมายวงเล็บเป็นต้น
- ประโยคอินพุตจะไม่มีเครื่องหมายวรรคตอนหรืออักขระพิเศษยกเว้นจุด / จุดในที่สุด ยกเว้นสัญลักษณ์ช่วงเวลาอักขระทั้งหมดที่อยู่ในอินพุตจะอยู่ในรายการคำ
- ตัวอักษรตัวแรกของประโยคจะเป็นตัวพิมพ์ใหญ่ส่วนที่เหลือจะเป็นตัวพิมพ์เล็ก
- ผลลัพธ์ของส่วนที่ 2 จะต้องเริ่มต้นด้วยตัวอักษรตัวพิมพ์ใหญ่เหมือนกันกับประโยคต้นฉบับ (ดังนั้นไม่แนะนำให้แปลงอินพุตเป็นตัวพิมพ์เล็ก (แต่ตกลง)
- เอาต์พุตสามารถอยู่ในรูปแบบที่เหมาะสม:
- จะต้องสามารถคัดลอกวางผลลัพธ์ลงในโปรแกรม / ฟังก์ชันถัดไปได้โดยตรง
- ไม่สามารถทำการแก้ไขได้เมื่อการคัดลอกวางผลลัพธ์ทั้งหมดจะต้องคัดลอกและวางโดยรวมไม่ใช่ในส่วน
- ตัวอย่างเช่นคุณอาจแสดงฮิสโตแกรมของตัวอักษรทั้งหมดในตัวอักษรหรือใช้เฉพาะที่ใช้ (โดยทั่วไปสิ่งใดก็ตามที่จำเป็นในการเติมส่วนที่ 2)
- คุณไม่สามารถส่งออกรายการของตัวละครที่เกิดซ้ำหลายครั้ง ยกตัวอย่างเช่น
The queue
ไม่สามารถให้ผลผลิตออก: มันควรจะเป็นสิ่งที่ชอบ:Teeehquu (3,5)
Tehqu, (1 3 1 1 2),(3 5)
ส่วนที่ 2:
- โปรแกรม / ฟังก์ชั่นจะต้องยอมรับอินพุตเหมือนกับที่มาจากส่วนที่ 1 (ข้อยกเว้นหนึ่งข้อโปรดดูความคิดเห็นด้านล่างเกี่ยวกับการตั้งชื่อไฟล์เป็นอินพุต)
- หากเครื่องหมายวงเล็บล้อมรอบเครื่องหมายอัญประกาศหรือสิ่งที่คล้ายกันจำเป็นต้องแยกวิเคราะห์อินพุตดังนั้นสิ่งเหล่านี้ต้องเป็นส่วนหนึ่งของเอาต์พุตจากส่วนที่ 1
- รายการคำสามารถพบได้ที่นี่
- รายการคำสามารถถูกบันทึกไว้ในเครื่องเป็น
w.txt
หรือสามารถดึงจาก url URL จะนับเป็น 5 ไบต์เท่านั้นดังนั้นคุณไม่จำเป็นต้องใช้ตัวย่อ URL - หากโปรแกรมไม่สามารถเปิดไฟล์โดยไม่อ่านชื่อเป็นอินพุตจาก STDIN (ฉันเชื่อว่านี่
เป็นกรณีของ Pyth อย่างน้อย) ดังนั้นชื่อไฟล์สามารถใช้เป็นอาร์กิวเมนต์อินพุตแยกต่างหาก
- รายการคำสามารถถูกบันทึกไว้ในเครื่องเป็น
- ผลลัพธ์จะต้องเป็นเพียงประโยค (รายการคำที่ถูกต้อง) ซึ่งลงท้ายด้วยจุดและขึ้นบรรทัดใหม่ที่เป็นตัวเลือก
- ผลลัพธ์จะต้องมีคำที่มีจำนวนตัวอักษรเท่ากันกับประโยคต้นฉบับในส่วนที่ 1 (ตามลำดับที่ถูกต้อง)
- ตัวอักษรทั้งหมดที่ใช้ในประโยคต้นฉบับจะต้องใช้ในผลลัพธ์ใหม่
- ประโยคต้องเริ่มต้นด้วยตัวอักษรตัวพิมพ์ใหญ่เช่นเดียวกับประโยคอินพุตต้นฉบับและลงท้ายด้วยจุด
ทั้งสองส่วน:
- ไม่ควรใช้เวลานานกว่า 2 นาทีในการดำเนินการ (สุ่มเลือกคำจนกว่าจะไม่ได้รับสารละลาย)
ด้วยกฎที่ระบุไว้ข้างต้นควรมีโอกาสพอสมควรที่จะทำซ้ำประโยคที่แน่นอนอย่างไรก็ตามนั่นไม่ใช่ข้อกำหนด
ตัวอย่าง:
ในตัวอย่างด้านล่างรูปแบบอินพุตและเอาต์พุตที่ต่างกันจะแสดงขึ้น ได้รับการยอมรับอีกมากมาย
ส่วนที่ 1:
การป้อนข้อมูล:
Zulus win.
ประเภทเอาท์พุท 1:
Z i l n s u w
1 1 1 1 1 2 1
5 3
ประเภทเอาท์พุท 2:
(('Z',1),('i',1),('l',1),('n',1),('s',1),('u',2),('w',1)), (5,2)
ประเภทเอาท์พุท 3:
'Zilnsuuw',[1,1,1,1,1,2,1],[5,2]
ส่วนที่ 2:
อินพุต: สำเนาที่แน่นอนของเอาต์พุตจากส่วนที่ 1 เอาต์พุต:
Zulus win.
โปรดทราบว่ายอมรับชุดคำอื่น ๆ ตราบใดที่คำเหล่านั้นเริ่มต้นด้วย a Z
และคำแรกมี 5 ตัวอักษรและคำที่สองมี 3
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
f1
สิ่งที่วางลงในนั้นf2
จะต้องมีข้อมูลทั้งหมดที่ระบุในการท้าทาย f1
ไม่มีข้อมูลเพิ่มเติมสามารถเป็นส่วนหนึ่งของการส่งออกจาก ไม่มีข้อมูลที่สามารถ "เก็บไว้" ในการทำให้ข้อมูลที่มีอยู่เมื่อเรียกใช้งานจากf1
สามารถรับหนึ่งสายเป็นอินพุตต่อการโทรเท่านั้น f2
f1