0123456789+*()
คุณจะได้รับสตริงประกอบกับตัวละคร คุณสามารถสันนิษฐานได้ว่าสตริงนั้นเป็นนิพจน์ทางคณิตศาสตร์ที่ถูกต้องเสมอ
งานของคุณคือการลบวงเล็บที่ไม่จำเป็นโดยสมมติว่าการคูณนั้นมีลำดับความสำคัญสูงกว่าการเพิ่ม
ควรลบวงเล็บออกเฉพาะเมื่อไม่จำเป็นต้องมีโครงสร้าง :
- เนื่องจากการคูณมีลำดับความสำคัญสูงกว่า:
3+(4*5)
=>3+4*5
- เนื่องจากการคูณหรือการเพิ่มการเชื่อมโยง:
3*(4*5)
=>3*4*5
- เมื่อพวกเขาซ้ำซ้อนรอบการแสดงออก:
3*((4+5))
=>3*(4+5)
ควรเก็บวงเล็บไว้เมื่อสามารถทำให้ง่ายขึ้นเนื่องจากค่าตัวเลขเฉพาะ:
1*(2+3)
ไม่ควรทำให้ง่ายขึ้น1*2+3
0*(1+0)
ไม่ควรทำให้ง่ายขึ้น0*1+0
ตัวอย่าง:
(4*12)+11 ==> 4*12+11
(1+2)*3 ==> (1+2)*3
3*(4*5) ==> 3*4*5
((((523)))) ==> 523
(1+1) ==> 1+1
1*(2*(3+4)*5)*6 ==> 1*2*(3+4)*5*6
1*(2+3) ==> 1*(2+3)
0*(1+0) ==> 0*(1+0)
(((2+92+82)*46*70*(24*62)+(94+25))+6) ==> (2+92+82)*46*70*24*62+94+25+6
1*(2*(3+4)*5)*6
ควรเป็น testcase ที่น่าสนใจ (ซึ่งโซลูชันของฉันล้มเหลวในขณะนี้)
(2+2)*1