1. 程式人生 > >西南科技大學OJ題 括號匹配問題0962

西南科技大學OJ題 括號匹配問題0962

括號匹配問題

假設表示式中允許包含兩種括號:圓括號和方括號。編寫一個演算法判斷表示式中的括號是否正確配對。

輸入

由括號構成的字串,包含”(“、”)“、”[“和”]“。

輸出

如果匹配輸出YES,否則輸出NO。

樣例輸入

[([][]())]

樣例輸出

YES

#include<stdio.h> #include<string.h> int main() {     char a[100];     char b[100];     int n;     scanf("%s",a);     n=strlen(a);     int k=0;     int t=0;     for(int i=0;i<n;i++)     {         if(a[i]=='(')         {             b[k++]=a[i];          }         else if(a[i]=='[')         {             b[k++]=a[i];         }                  else if(a[i]==')')         {             if(b[k-1]=='(')             {                 k--;             }             else             {                 t=1;                 break;             }         }         else if(a[i]==']')         {             if(b[k-1]=='[')             {                 k--;             }             else             {                 t=1;                 break;             }         }          }     if(t==1) printf("NO");     else if(k==0) printf("YES");     else printf("NO"); }