Cho một biểu thức số học, có thể bao gồm dấu ngoặc đơn ( ()
), số mũ ( ^
), phép chia ( /
) và phép nhân ( *
), phép cộng ( +
) và phép trừ ( -
) (theo thứ tự hoạt động đó), chẳng hạn như
a ^ (2 / 3) * 9 * 3 - 4 * 6
xuất biểu thức tương tự trong ký hiệu tiền tố.
(- (* (* (^ a (/ 2 3)) 9) 3) (* 4 6))
Không gian là tùy chọn trong đầu vào cũng như đầu ra. Bạn có thể giả sử rằng tất cả các toán tử là liên kết trái và tất cả các số trong biểu thức là số nguyên một chữ số (nghĩa là [0-9]
).
Đây là một thử thách golf mã, vì vậy giải pháp ngắn nhất sẽ thắng.
*
và /
có cùng quyền ưu tiên, cũng như +
amd -
.
3+4-5+6 = (((3+4)-5)+6)
hay((3+4)-(5+6))
?