문자로 구성된 문자열이 제공 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
흥미로운 테스트 사례이어야합니다 (현재 솔루션에 실패했습니다).
(2+2)*1