本文共 1384 字,大约阅读时间需要 4 分钟。
3763 | 30.56% | 1145 | 70.66% |
题目类型: 数据结构, 二叉树
a + bb - za+b--+c++c+f--+--a f-- + c-- + d-++e
Expression: a + b value = 3 a = 1 b = 2Expression: b - z
#include#include #include #include #include #include #include using namespace std;vector var;deque que;const int MAXN = 120;char str[MAXN];int val[26]; // 用来保存a,b,……z的初始值int increment;// 对输入的字符串进行过滤,消去空格void Filter(){ int pos=0; for(int i=0; i ='a' && str[i]<='z'){ // 有前缀 var.push_back(str[i]); // 把该字母存入 if(i>=2 && havePrefix(i)){ if(str[i-1]=='+') ++val[str[i]-'a']; else --val[str[i]-'a']; int n = val[str[i]-'a']; que.push_back(n); str[i-1]=str[i-2] = ' '; } // 有后缀 else if(i<=strlen(str)-3 && haveSuffix(i)){ int n = val[str[i]-'a']; que.push_back(n); if(str[i+1]=='+'){ ++val[str[i]-'a']; --increment; } else{ --val[str[i]-'a']; ++increment; } str[i+1] = str[i+2] = ' '; } else { int n = val[str[i]-'a']; que.push_back(n); } } }}int GetSum(){ for(int i=0; i
转载地址:http://euzni.baihongyu.com/