文章
15
粉丝
39
获赞
137
访问
5.6k
//10:38
//1281-计算表达式
#include<bits/stdc++.h>
using namespace std;
int charToint(char c[100],int n){
int s=0;
// cout<<"c="<<c[0]-'0'<<endl;
for(int i=0;i<=n;i++){
s=s*10+c[i]-'0';
// cout<<"s="<<s<<endl;
}
return s;
}
bool judge(char a,char b){ //卡顿点:运算符的问题:只要当前入栈符号优先级不大于栈顶符号
// string s="+-*/"; //就让栈顶符号出栈,这与带括号的运算规则不太一样
// if(s.find(a)>=s.find(b)) return true;
map<char,int> mp;
mp['+']=1;
mp['-']=1;
mp['*']=2;
mp['/']=2;
if(mp[b]>mp[a]) return false;
else return true;
}
int calpost(int b[100],int n,int f[100]){
stack<int> s;
int ans;
for(int i=0;i<n;i++){
if(f[i]==0) s.push(b[i]);
else{
int num1=s.top();
s.pop();
int num2=s.top();
s.pop();
int r;
if(b[i]=='/' ) r=(num2)/(num1);
else if(b[i]=='*' ) r=(num2)*(num1);
else if(b[i]=='+') r=(num2)+(num1);
else if(b[i]=='-') r=(num2)-(num1);
...
登录后发布评论
暂无评论,来抢沙发