zoj1423(Your)((Term)((Project))) (栈——基础练习)

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=423


说明:虽然这题不难,但是WA了几次,并且看了几个别人的代码,发现他们没有和我思路一样的。于是只能苦逼的想哪错了,后来发现a-(c-c-c+b)+((a+c)-(b-c))  这项数据会导致我的代码错误(括号没匹配上),改了下,终于AC了


思路:用俩个栈来实现。括号前面如果有-号,并且这个括号内有运算符号,则这个括号不能去掉,如-(a+b)


#include
#include
#include
using namespace std;
int main(){
    int n;
    char s[330];
    stack p,b;//b用于辅助
    while(scanf("%d%*c",&n)!=EOF){
        while(n--){
            gets(s);
            while(!p.empty())//清空俩个栈
                p.pop();
            while(!b.empty())
                b.pop();

            int len_s=strlen(s);
            for(int i=0;i


你可能感兴趣的:(栈)