資料結構實驗之棧四:括號匹配 字串匹配
阿新 • • 發佈:2019-02-18
yes
no
每當遇到( { 【 的時候 資料進棧
遇到)}】的時候出棧頂 看是否能匹配 如果能 則出棧 否則 結束
注意輸入的時候有空格
#include<cstdio> #include<stack> #include<cstring> #include<iostream> #include<algorithm> #include<string.h> using namespace std; int main() { stack<int>S; string c; while(getline(cin,c)) { int flag=0; while(!S.empty()) { S.pop(); } for(int i=0; i<c.size(); i++) { if(c[i]=='('||c[i]=='{'||c[i]=='[') { S.push(c[i]); } else if(c[i]==')') { if(S.empty()) { flag=1; break; } else { char s; s=S.top(); if(s=='(') { S.pop(); } else { flag=1; break; } } } // else if(c[i]==']') { if(S.empty()) { flag=1; break; } else { char s; s=S.top(); if(s=='[') { S.pop(); } else { flag=1; break; } } } // else if(c[i]=='}') { if(S.empty()) { flag=1; break; } else { char s; s=S.top(); if(s=='{') { S.pop(); } else { flag=1; break; } } } if(flag==1) break; } if(flag==0&&S.empty()) printf("yes\n"); else printf("no\n"); } return 0; } /************************************** Problem id : SDUT OJ E User name : ACboy Result : Accepted Take Memory : 1568K Take Time : 0MS Submit Time : 2013-01-23 11:29:52 **************************************/