資料結構實驗之棧與佇列四:括號匹配(SDUT 2134)
阿新 • • 發佈:2018-11-08
#include <bits/stdc++.h> using namespace std; typedef long long ll; char s[100]; char a[100]; int main() { int i,j,k,f,top,len; while(gets(s) != '\0') { len = strlen(s); top = 0; f = 0; for(i = 0; i < len; i ++) { if(s[i] == ')') { if(top == 0) { f = 1; break; } else { if(a[top - 1] == '(') { top --; } else { f = 1; break; } } } else if(s[i] == '(') { a[top ++] = '('; } else if(s[i] == '}') { if(top == 0) { f = 1; break; } else { if(a[top - 1] == '{') { top --; } else { f = 1; break; } } } else if(s[i] == '{') { a[top ++] = '{'; } else if(s[i] == ']') { if(top == 0) { f = 1; break; } else { if(a[top - 1] == '[') { top --; } else { f = 1; break; } } } else if(s[i] == '[') { a[top ++] = '['; } } if(top != 0 || f == 1) printf("no\n"); else printf("yes\n"); } return 0; }