华为机试-050-中等-HJ50.四则运算
一、描述
输入一个表达式(用字符串表示),求这个表达式的值。
保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表达式一定合法。
1.1、输入描述
- 输入一个算术表达式
1.2、输出描述
- 得到计算结果
二、示例
2.1、示例1
输入:
3+2*{1+2*[-4/(8-6)+7]}
输出:
25
三、答案(java)
3.1、方法一
package com.tzq.hwod;
import java.util.Scanner;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class Main {
public static void main(String[] args) throws ScriptException {
Scanner scan = new Scanner(System.in);
String input = scan.nextLine();
input = input.replace("[", "(");
input = input.replace("{", "(");
input = input.replace("}", ")");
input = input.replace("]", ")");
ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("nashorn");
System.out.println(scriptEngine.eval(input));
}
}
四、答案(python 3)
4.1、方法一
#!/usr/bin/python
# -*- coding: UTF-8 -*-
s = input()
s = s.replace("{", "(")
s = s.replace("}", ")")
s = s.replace("[", "(")
s = s.replace("]", ")")
print(int(eval(s)))