Bạn phải đánh giá một chuỗi được viết bằng ký hiệu Reverse Ba Lan và đưa ra kết quả.
Chương trình phải chấp nhận đầu vào và trả lại đầu ra. Đối với các ngôn ngữ lập trình không có chức năng nhận đầu vào / đầu ra, bạn có thể đảm nhận các chức năng như readLine / print.
Bạn không được phép sử dụng bất kỳ loại "eval" nào trong chương trình.
Các số và toán tử được phân tách bằng một hoặc nhiều khoảng trắng.
Bạn phải hỗ trợ ít nhất các toán tử +, -, * và /.
Bạn cần thêm hỗ trợ cho các số âm (ví dụ: -4
không giống như 0 4 -
) và các số dấu phẩy động.
Bạn có thể giả sử đầu vào là hợp lệ và tuân theo các quy tắc trên
Các trường hợp thử nghiệm
Đầu vào:
-4 5 +
Đầu ra:
1
Đầu vào:
5 2 /
Đầu ra:
2.5
Đầu vào:
5 2.5 /
Đầu ra:
2
Đầu vào:
5 1 2 + 4 * 3 - +
Đầu ra:
14
Đầu vào:
4 2 5 * + 1 3 2 * + /
Đầu ra:
2
eval
để phân tích số? Nghe có vẻ khá vỡ. (GolfScript là một ngôn ngữ như vậy, theo như tôi biết. Tôi nghĩ nó cũng bị hỏng.)
eval(s)
tốt hơnfloat(s)
~
. :-P