คำนำ
นัมเบอร์อยู่เสมอทั้งแม้หรือคี่ แม้จำนวนเต็มหารด้วยสองก็ไม่ได้เป็นจำนวนเต็มคี่
เมื่อคุณเพิ่มจำนวนเต็มสองจำนวนคุณสามารถอนุมานได้ว่าผลลัพธ์จะเป็นแบบคู่หรือคี่โดยขึ้นอยู่กับว่าการสรุปนั้นเป็นแบบคู่หรือคี่:
- Even + Even = Even
- คู่ + คี่ = คี่
- คี่ + คู่ = คี่
- Odd + Odd = Even
ในทำนองเดียวกันเมื่อคุณคูณจำนวนเต็มสองจำนวนคุณสามารถอนุมานได้ว่าผลลัพธ์จะเป็นเลขคู่หรือคี่ขึ้นอยู่กับว่าปัจจัยเป็นเลขคู่หรือคี่:
- คู่ * แม้แต่ = แม้แต่
- คู่ * Odd = Even
- คี่ * คู่ = คู่
- คี่ * คี่ = คี่
ดังนั้นหากคุณทราบความสม่ำเสมอหรือความแปลกของตัวแปรทั้งหมดในนิพจน์ทางคณิตศาสตร์ที่เกี่ยวข้องกับการบวกและการคูณคุณสามารถอนุมานได้ว่าผลลัพธ์จะเป็นแบบคู่หรือคี่
ตัวอย่างเช่นเราสามารถพูดได้อย่างมั่นใจว่า(68 + 99) * 37
ผลลัพธ์เป็นเลขคี่เพราะคู่บวกคี่ ( 68 + 99
) คือคี่และคี่นั้นคูณคี่อีกคี่ ( odd * 37
) ให้คี่
ท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่รับสายอักขระที่มีอักขระสี่ตัวeo+*
เท่านั้น สตริงนี้แสดงถึงการแสดงออกทางคณิตศาสตร์ที่ได้รับในสัญกรณ์คำนำหน้าที่เกี่ยวข้องกับการเพิ่ม ( +
) และการคูณ ( *
) แต่ละอันe
แสดงถึงo
เลขคู่โดยพลการบางส่วนและแต่ละอันแทนจำนวนคี่โดยพลการบางอย่าง
งานของคุณคือทำให้นิพจน์พิมพ์หรือส่งคืนเดี่ยวe
หรือทำให้ง่ายo
ขึ้นโดยขึ้นอยู่กับว่าผลลัพธ์ของนิพจน์นั้นเป็นเลขคู่หรือคี่
คุณสามารถสันนิษฐานได้ว่าอินพุตจะอยู่ในรูปแบบของคำนำหน้าที่ถูกต้องเสมอ โดยเฉพาะแต่ละตัว+
และ*
จะมีตัวถูกดำเนินการสองตัวที่สอดคล้องกันเกิดขึ้นหลังจากนั้น ถูกดำเนินการเหล่านี้อาจจะเป็นหนึ่งเดียวe
หรือo
หรืออีก+
หรือ*
แสดงออกในทางกลับกันมีตัวถูกดำเนินการ
ยกตัวอย่างเช่นการป้อนข้อมูลที่*+eoo
อาจจะอ่านmul(add(e, o), o)
หรือ(e + o) * o
ปกติโน้ตมัด e
และเป็นครั้งแรกo
ที่มีตัวถูกดำเนินการที่สอดคล้องกับ+
และ+eo
และสุดท้ายเป็นตัวถูกดำเนินการที่สอดคล้องกับo
*
เพื่อให้ชัดเจนนี่คืออินพุตที่ไม่ถูกต้องบางส่วนที่มีเครื่องหมายคำนำหน้าไม่ถูกต้อง:
eo
ooe
o+e
ee*
+*oe
+e*o
บรรทัดใหม่ของการขึ้นบรรทัดเดียวในเอาต์พุตนั้นใช้ได้ แต่มิฉะนั้นธรรมดาe
สำหรับคู่หรือo
คี่คือทั้งหมดที่ควรจะเป็นเอาต์พุต
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
กรณีทดสอบ
(บรรทัดที่ว่างเปล่ามีไว้เพื่อช่วยแยกกรณีที่คล้ายกันทางสายตาเท่านั้น)
e -> e
o -> o
+ee -> e
+eo -> o
+oe -> o
+oo -> e
*ee -> e
*eo -> e
*oe -> e
*oo -> o
+e+ee -> e
+e+eo -> o
+e+oe -> o
+e+oo -> e
+e*ee -> e
+e*eo -> e
+e*oe -> e
+e*oo -> o
+o+ee -> o
+o+eo -> e
+o+oe -> e
+o+oo -> o
+o*ee -> o
+o*eo -> o
+o*oe -> o
+o*oo -> e
*e+ee -> e
*e+eo -> e
*e+oe -> e
*e+oo -> e
*e*ee -> e
*e*eo -> e
*e*oe -> e
*e*oo -> e
*o+ee -> e
*o+eo -> o
*o+oe -> o
*o+oo -> e
*o*ee -> e
*o*eo -> e
*o*oe -> e
*o*oo -> o
++eee -> e
++eeo -> o
++eoe -> o
++eoo -> e
++oee -> o
++oeo -> e
++ooe -> e
++ooo -> o
+*eee -> e
+*eeo -> o
+*eoe -> e
+*eoo -> o
+*oee -> e
+*oeo -> o
+*ooe -> o
+*ooo -> e
*+eee -> e
*+eeo -> e
*+eoe -> e
*+eoo -> o
*+oee -> e
*+oeo -> o
*+ooe -> e
*+ooo -> e
**eee -> e
**eeo -> e
**eoe -> e
**eoo -> e
**oee -> e
**oeo -> e
**ooe -> e
**ooo -> o
+e+e+e+ee -> e
+o+o+o+oo -> o
*e*e*e*ee -> e
*o*o*o*oo -> o
+e+o+e+oe -> e
+o+e+o+eo -> o
*e*o*e*oe -> e
*o*e*o*eo -> e
+e*e+e*ee -> e
+o*o+o*oo -> o
*e+e*e+ee -> e
*o+o*o+oo -> o
+**++*+*eeoeeooee -> e
+**++*+***eooeoeooeoe -> e
+**+***+**++**+eooeoeeoeeoeooeo -> o
+e*o*e**eoe -> e
+*e+e+o+e**eeoe -> e
**o++*ee*++eoe*eo+eoo -> o
eval
OK ไหม