标签:
小白书里数据结构基础线性表的训练参考
翻译请戳 http://luckycat.kshs.kh.edu.tw/
解题思路
又是用栈。。。都是合法的表达式,放心写吧。。。
代码
#include<iostream> #include<cstdio> #include<string.h> #include<stack> using namespace std; const int maxNum = 200; struct Matrix { int x, y; }Mat[maxNum]; stack<Matrix> st; int main() { int n; char s[10000]; cin >> n; for(int i=0; i<n; i++) { char a; int b, c; cin >> a >> b >> c; Mat[a].x = b; Mat[a].y = c; } getchar(); while(gets(s) != NULL) { bool error = false; int tot = 0; for(int i=0; i<strlen(s); i++) { if(isupper(s[i])) { st.push(Mat[s[i]]); } else if(s[i] == ‘)‘) { Matrix temp1, temp2; temp1 = st.top(); st.pop(); temp2 = st.top(); st.pop(); if(temp1.x != temp2.y) { error = true; break; } else { Matrix temp; temp.x = temp2.x; temp.y = temp1.y; st.push(temp); tot += temp2.x*temp2.y*temp1.y; } } } if(error) cout << "error" << endl; else cout << tot << endl; while(!st.empty()) st.pop(); } return 0; }
标签:
原文地址:http://www.cnblogs.com/ZengWangli/p/5747771.html