บทนำ
เครื่องคิดเลขของฉันมีพฤติกรรมแปลก ๆ บางครั้งเมื่อฉันพิมพ์ในจะแสดง8
2
และบางครั้งเมื่อฉันพิมพ์ในจะแสดง6
+
ปุ่มบางปุ่มผสมกัน!
ใครสามารถช่วยฉันพิจารณาว่าอันไหน
ท้าทาย:
อินพุต:รายการสมการที่ไม่ถูกต้องพร้อมผลลัพธ์ที่ถูกต้อง
เอาท์พุท:สองปุ่มที่สลับ
ตัวอย่างเช่น:
อินพุตอาจเป็น:
123 = 3
8423 = 252
4+4 = 8
4*7-10 = 417
9/3 = 3
42-9 = -36
ซึ่งผลที่คาดว่าจะเป็น: และ2
*
ทำไม? เนื่องจากสมการทั้งหมดจะถูกต้องหากเราสลับ 2 และ * ของ:
1*3 = 3
84*3 = 252
4+4 = 8
427-10 = 417
9/3 = 3
4*-9 = -36
กฏท้าทาย:
- อินพุตอาจอยู่ในรูปแบบที่สมเหตุสมผล สามารถเป็นสตริงเดียวที่มีช่องว่างคั่น; รายการสตริงหรือ -array; รายการที่มีสมการและรายการอื่นที่มีผลลัพธ์ที่ถูกต้อง การโทรของคุณ โปรดระบุว่าคุณใช้รูปแบบการป้อนข้อมูลใด!
หมายเหตุ: นี่ยังหมายความว่าคุณได้รับอนุญาตให้ป้อนข้อมูลกรณีทดสอบ-5--15
เป็นหรือ-5- -15
-5 - -15
อย่างไรก็ตามตัวเลขที่ส่งผลให้--
ควรป้อนโดยไม่มีช่องว่างหรือมีช่องว่างระหว่างทุกหลัก ดังนั้นกรณีทดสอบ9119
สามารถป้อนเช่น9119
หรือ9 1 1 9
(เหตุผลที่91 19
ไม่ได้รับอนุญาตเป็นเพราะคุณสามารถได้รับคำแนะนำจากพื้นที่สำหรับการค้นหา- -
) ดังนั้นการเว้นวรรคจึงเป็นทางเลือกและได้รับอนุญาต - รูปแบบเอาต์พุตสามารถอยู่ในรูปแบบที่สมเหตุสมผลเช่นกัน สามารถเป็นอักขระสองตัว สตริงสองอักขระเดี่ยว รายการสตริงที่มีอักขระสองตัว การโทรของคุณ โปรดระบุว่าคุณใช้รูปแบบผลลัพธ์ใด!
- คุณได้รับอนุญาตให้ใช้ที่แตกต่างกัน 14 ผลใด ๆ
0123456789+-*/
ที่แมปไป ดังนั้นคุณจะได้รับอนุญาตให้ส่งออกจำนวนเต็มสองจำนวนที่แตกต่างกันหากคุณต้องการ (อีกครั้งโปรดระบุการแมปที่คุณใช้ถ้ามี) - คุณต้องรองรับจำนวนเต็มเท่านั้น ดังนั้นจะไม่มีการทดสอบกรณีใด ๆ เช่นหรือ
1/8=0.125
1/8=0
- ตัวถูกดำเนินการทางคณิตศาสตร์คุณจะต้องสนับสนุน: นอกจาก (
+
); การลบ (-
); การคูณ (*
หรือ×
หรือ·
); ส่วน (/
หรือ÷
) (หมายเหตุ: อักขระระหว่างวงเล็บจะถูกเพิ่มเป็นการชี้แจงเท่านั้น) - คุณจะต้องรองรับตัวเลขติดลบ วิธีนี้
-
สามารถตีความได้ในสมการทั้งตัวถูกดำเนินการทางคณิตศาสตร์หรือตัวบ่งชี้เชิงลบ - คุณสามารถสมมติว่าสมการที่ไม่ถูกต้องและสมการที่ถูกต้องนั้นถูกต้องเสมอ (ดังนั้นจะไม่มีสิ่งใดเหมือน
4-/2
หรือ9+-+8
เป็นตัวอย่าง) - สมการอินพุตที่ไม่ถูกต้องสามารถมีการหารด้วย 0 แต่สมการที่ถูกต้องและที่คาดไว้จะไม่มีการหารด้วย 0
- สมการอินพุตที่ไม่ถูกต้องสามารถแก้ไขได้แม้ว่าคุณจะสลับปุ่มที่ต้องการกลับไป
- สมการอินพุตที่กำหนดอาจไม่เกี่ยวข้องกับปุ่มที่จะสลับ (เช่น
4+4=8
และ9/3=3
สมการด้วยปุ่มสลับ2
และ*
) - คุณสามารถสันนิษฐานได้ว่าจะมีการสลับที่เป็นไปได้เพียงครั้งเดียวเท่านั้นที่สามารถทำได้กับกรณีทดสอบที่กำหนด
- ปุ่มทั้งสองเพื่อสลับจะมีอยู่ในสมการที่ไม่ถูกต้องอย่างน้อยหนึ่งครั้งเสมอ
กฎทั่วไป:
- นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ
อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีการที่มีพารามิเตอร์ที่เหมาะสมและชนิดผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
- นอกจากนี้โปรดเพิ่มคำอธิบายหากจำเป็น
กรณีทดสอบ:
Input:
123 = 3
8423 = 252
4+4 = 8
4*7-10 = 417
9/3 = 3
42-9 = -36
Output: 2 *
Input:
4/2 = 6
3/0 = 3
0/8+2 = 4
95-5 = 90
4+2 = 2
Output: + /
Input:
7+4 = 11
5-15 = 46
212-23 = -2121
Output: 1 -
Input:
4+8/2-9*1 = -5
99/3-13 = 20
1+2+3+4 = 10
4-3-2-1 = -6
Output: 2 4
Input:
18/18 = 1
98-8 = 90
55*88 = 4840
-5--15 = 10
Ouput: 5 8
Input:
9119 = 18
5-3 = 513
8*-9 = 152
13116/3 = -1
Output: 1 -
--
ผมขอแนะนำให้กรณีทดสอบที่สมการที่ถูกต้องมี 1991 = 2, -/3 = 3
เช่น (หลายภาษาสับสนเรื่องนี้กับโอเปอเรเตอร์แบบลดค่า)
91 19
กรณีที่วิธีการแก้ปัญหา9--9
และไม่มีช่องว่างใน9119
กรณีที่การแก้ปัญหา9229
ต้องมีความรู้เกี่ยวกับการแก้ปัญหาเมื่อสร้างกรณีทดสอบ หากได้รับอนุญาตฉันสามารถเพิ่มช่องว่างได้เฉพาะก่อนที่อักขระที่สลับเปลี่ยนและวิธีแก้ไขอาจมาจากกรณีทดสอบทันที
*
และ/
ก่อน+
และไบนารี-
หรือไม่