华为OJ表达式求值
来源:互联网 发布:淘宝宝贝推荐模板 编辑:程序博客网 时间:2024/06/06 10:44
/*
功能: 对输入的字符串表达式进行求值计算,并输出结果。
输入:String inputString:表达式字符串
返回: int :正常返回true,失败返回false
*/
public static boolean calculate(String inputString)
{
/*在这里实现功能*/
return true;
}
获取计算结果(int型)
public static int getResult()
{
/*在这里实现功能*/
return 0;
}
输入算术表达式
计算出结果值
#include <iostream> #include <vector>#include <string>#include <stack>#include <map>#include <algorithm>using namespace std;map<char, int> priority;//保存运算符优先级vector<string> vec;//保存后缀表达式//函数getExpression用于获取字符串的后缀表达式//输入:str中缀表达式字符串//输出:vec后缀表达式//算法参考网址:http://blog.csdn.net/u012507347/article/details/52245233void getExpression(string str){stack<char> s;//保存运算符for (int i = 0; i < str.length(); i++){if (isalnum(str[i])){string num;while (isalnum(str[i])){num.push_back(str[i]);i++;}vec.push_back(num);i--;}else if (str[i] == '('){s.push(str[i]);}else if (str[i] == ')'){while (s.top() != '('){string tmp;tmp.push_back(s.top());vec.push_back(tmp);s.pop();}s.pop();}else{if(!s.empty() && priority[s.top()] <= priority[str[i]] && s.top() != '('){string tmp;tmp.push_back(s.top());vec.push_back(tmp);s.pop();s.push(str[i]);}elses.push(str[i]);}}while (!s.empty()){string tmp;tmp.push_back(s.top());vec.push_back(tmp);s.pop();}}//计算后缀表达式的结果int computerExp(){stack<int> s;for (int i = 0; i < vec.size(); i++){if (isalnum(vec[i][0])){int num = atoi(vec[i].c_str());s.push(num);}else{int value1 = s.top();s.pop();int value2 = s.top();s.pop();int value3;switch (vec[i][0]){case '+':value3 = value2 + value1;break;case '-':value3 = value2 - value1;break;case '*':value3 = value2 * value1;break;case '/':value3 = value2 / value1;break;}s.push(value3);}}return s.top();}void main(){priority['+'] = 1;priority['-'] = 1;priority['*'] = 0;priority['/'] = 0;string str;cin >> str;getExpression(str);cout << computerExp()<<endl;cout << "true";}
0 0
- 华为OJ表达式求值
- 华为OJ(表达式求值)
- 【华为OJ】【096-表达式求值】
- 华为OJ——表达式求值
- 表达式求值(OJ)
- 华为机试题之表达式求值
- 华为机试 - 题目4 - 表达式求值
- 南阳oj 表达式求值 题目305 数据结构
- BUAA OJ 722 Gzh之表达式求值
- oj求值
- 2013 华为招聘上机第三题 表达式求值
- 华为编程题之七:条件表达式求值
- 南阳 oj 表达式求值 题目35 数据结构 NYO题目链接
- 南阳oj题目35 表达式求值【栈的应用】
- 九度OJ 1101 表达式求值(栈的应用)
- 表达式求值
- 表达式求值
- 表达式求值
- 子树
- Java打印,自定义纸张大小
- 【机器学习实战-python3】K-均值聚类算法
- Springdata-redis在项目中的使用
- DCMTK3.6.0(MD支持库)安装说明
- 华为OJ表达式求值
- iOS 并发编程之 Operation Queues
- C中的qsort()用法
- 行程编码
- RISC-V相关的开源项目
- C++实验4-项目6
- ROS之launch文件传递参数
- uva 327 Evaluating Simple C Expressions
- Docker启动一个Centos镜像