ลองนึกภาพฉันมีปัญหาการบ้านจำนวนอนันต์ (!) แต่ละข้อให้เป็นจำนวนเต็ม
สัญลักษณ์ปัญหาคณิตศาสตร์เป็นสัญลักษณ์สำหรับอธิบายชุดย่อยของปัญหาโดยใช้ตัวระบุปัญหา
นิพจน์ MPN อาจประกอบด้วยหลายสิ่ง:
- ค่าเดียว
99 -> {99}
นี้แสดงให้เห็นชุดที่มีจำนวน: - ช่วงที่เรียบง่าย
10~13 -> {10, 11, 12, 13}
นี้แสดงให้เห็นชุดที่มีตัวเลขทั้งหมดจากจุดเริ่มต้นถึงจุดสิ้นสุดของช่วง: หากด้านซ้ายหรือด้านขวาหายไปแสดงว่าเป็นอินฟินิตี้หรืออินฟินิตี้ตามลำดับ:~10 -> {x|x ≤ 10}
;~ -> ℤ
. - นิพจน์ MPN ตามด้วย "skip" และนิพจน์ MPN อื่น
10~20 skip 12~14 -> {10, 11, 15, 16, 17, 18, 19, 20}
แสดงให้เห็นถึงความแตกต่างนี้ของทั้งสองชุด: - นิพจน์ MPN สองนิพจน์คั่นด้วยเครื่องหมายจุลภาค สิ่งนี้แสดงถึงการรวมกันของสองชุด:
1,8~9,15~17 -> {1,8,9,15,16,17}
.
ผู้ประกอบการ "ข้าม" ผูกแน่นกว่าตัวดำเนินการคอมมาดังนั้น16,110~112 skip 16 -> {16,110,111,112}
(16 ไม่รวมอยู่ในชุด{110,111,112}
ดังนั้นการยกเว้น 16 จึงไม่สำคัญ)
คุณยังสามารถใส่นิพจน์ในวงเล็บเพื่อแก้ความกำกวม:
1~9 skip (2~8 skip (3~7 skip (4~6 skip 5))) -> {1,3,5,7,9}
นี่คือไวยากรณ์:
<expr> ::= "(" <expr> ")"
|| <number>
|| [<number>] "~" [<number>]
|| <expr> "skip" <expr>
|| <expr> "," <expr>
งานของคุณคือการเขียนโปรแกรมที่รับสองอินพุต:
- นิพจน์ MPN
- หมายเลข
และส่งออกค่าความจริงหรือเท็จบางอย่างขึ้นอยู่กับว่าปัญหานั้นอยู่ในชุดที่อธิบายโดยการแสดงออกของ MPN
ข้อมูลจำเพาะ
- คุณสามารถสันนิษฐานได้ว่าอินพุตแรกเป็นนิพจน์ MPN ที่มีรูปแบบที่ดี (เช่นตรงกับไวยากรณ์ด้านบน)
- ตัวเลขในนิพจน์ MPN เป็นจำนวนเต็มเสมอ พวกมันอาจเป็นลบหรือศูนย์ แต่จะไม่มีส่วนที่เป็นเศษส่วน
- นี่คือรหัสกอล์ฟดังนั้นการส่งที่ถูกต้องสั้นที่สุด (วัดเป็นไบต์) ชนะ
- คุณสามารถใช้อักขระที่แตกต่างกันสำหรับ
~
และ,
ถ้าคุณต้องการ
กรณีทดสอบ
10~20 14 -> True
10~20 20 -> True
10~20 skip 14~18 17 -> False
~ skip 6 8 -> True
16,17 skip 16 16 -> True
(16,17) skip 16 16 -> False
~10,5~ 8 -> True
~10,5~ 4 -> True
6 skip 6,~ 6 -> True
~
และแต่ไม่ได้สำหรับ,
skip
6 skip 6,~
ซึ่งฉันเชื่อว่าฉันตีความถูกต้อง อีก 2 คำตอบยังไม่เป็นที่พอใจ (อีกครั้งสมมติว่าฉันตีความถูกต้อง) หากฉันเข้าใจผิดโปรดแก้ไขให้ถูกต้องและให้ความกระจ่าง แต่จากความเข้าใจของฉันมันควรจะตรงกับทุกอย่าง นี่คือกรณีต่างๆที่ฉันพูดถึงก่อนหน้านี้ซึ่งฉันคิดว่าสามารถช่วยได้มากเมื่อทำการทดสอบโซลูชันของเรา