ฉันเห็น BIDMAS ของคุณและสร้าง BADMIS ให้คุณ
ท้าทาย
กำหนดตัวเลขที่มีตัวดำเนินการระหว่าง: "5 + 4 * 9/3 - 8" ให้ส่งกลับผลลัพธ์ที่เป็นไปได้ทั้งหมดของนิพจน์สำหรับการเรียงลำดับของการดำเนินการพื้นฐานทุกครั้ง: [/, *, +, -]
กฎระเบียบ
- ช่องโหว่มาตรฐานต้องห้าม
- I / O
- ต้องป้อนข้อมูลด้วยการดำเนินการมัด แต่ที่ง่ายที่สุด (สตริงหรืออาร์เรย์)
- คุณไม่จำเป็นต้องสนับสนุนผู้ประกอบการเอก (เช่น "-3 * 8 / +2")
- จำนวนเต็มสามารถแทนที่ด้วยการลอยสำหรับภาษาที่แจงโดยปริยายประเภท (เช่น 45 ⟶ 45.0)
- ผลลัพธ์จะต้องเป็นผลลัพธ์ที่เป็นไปได้ทั้งหมดของการแสดงออกไม่มีรูปแบบหรือคำสั่งที่ระบุ
- อินพุตทั้งหมดใช้งานได้ (เช่นไม่จำเป็นต้องจัดการกับ "7/3 + *") นี่ก็หมายความว่าคุณไม่จำเป็นต้องหารด้วยศูนย์
- ผู้ประกอบการทุกคนมีความสัมพันธ์ทางด้านซ้ายดังนั้น "20/4/2" = "(20/4) / 2"
- นี่คือ Code Golf ที่มีจำนวนไบต์น้อยที่สุดจึงจะชนะ
กรณีทดสอบ (พร้อมคำอธิบาย)
- "2 + 3 * 4" = [14, 20]
- 2 + (3 * 4) ⟶ 2 + (12) ⟶ 14
- (2 + 3) * 4 ⟶ (5) * 4 ⟶ 20
- "18/3 * 2 - 1" = [11, 2, 6]
- ((18/3) * 2) - 1 ⟶ ((6) * 2) - 1 ⟶ (12) - 1 ⟶ 11
- (18/3) * (2 - 1) ⟶ (6) * (1) ⟶ 6
- (18 / (3 * 2)) - 1 ⟶ (18 / (6)) - 1 ⟶ (3) - 1 ⟶ 2
- 18 / (3 * (2 - 1)) ⟶ 18 / (3 * (1)) ⟶ 6
- 18 / ((3 * 2) - 1) ⟶ 18/5 ⟶ 3.6
กรณีทดสอบ (ไม่มีคำอธิบาย)
- "45/8 + 19/45 * 3" = [6.891666666666667, 18.141666666666666, 0.1111111111111111113, 0.01234567901234568, 0.01234567901234568, 5.765740740740741]
- "2 + 6 * 7 * 2 + 6/4" = [112 196 23 87.5]
2 - 3 + 4
=>[-5, 3]
2*3-6+2-9/6*8+5/2-9
ให้ผลลัพธ์ที่แตกต่าง 24 รายการ