码迷,mamicode.com
首页 > 其他好文 > 详细

括号匹配

时间:2016-04-05 19:11:30      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:


#include<iostream>
using namespace std;
class lilang{
   public:
   lilang(){
     b1=0;c1=0;
     b2=0;c2=0;
     b3=0;c3=0;
     b4=0;c4=0;
     b5=0;c5=0;
     b6=0;c6=0;
     b7=0;c7=0;
     b8=0;c8=0;
   }
   void Input(){
     for(int i=0;;i++)
        {
            cin>>a[i];
            if(a[i]==‘#‘)
                break;
        }
   }
   void Check(){
     for(int i=0;a[i]!=‘#‘;i++)
     {
         switch(a[i])
          {
               case ‘{‘:b1++;c1=i;break;
               case ‘}‘:b2++;c2=i;break;
               case ‘[‘:b3++;c3=i;break;
               case ‘]‘:b4++;c4=i;break;
               case ‘(‘:b5++;c5=i;break;
               case ‘)‘:b6++;c6=i;break;
               case ‘<‘:b7++;c7=i;break;
               case ‘>‘:b8++;c8=i;break;
          }
     }
    if((b1==b2)&&(b3==b4)&&(b5==b6)&&(b7==b8))
        cout<<"right"<<endl;
    if((b1+b3+b5+b7)>(b2+b4+b6+b8))
       {
        cout<<"loss of right character ";
         if(b1>b2)
            cout<<"}";
         if(b3>b4)
            cout<<"]";
         if(b5>b6)
            cout<<")";
         if(b7>b8)
            cout<<">";
         cout<<"."<<endl;
       }
   else if((b1+b3+b5+b7)<(b2+b4+b6+b8))
           {
           cout<<"The ";
                 if(b1<b2)
                   {
                     cout<<c2+1;
                     cout<<" character ‘}‘ is wrong."<<endl;
                   }
                 if(b3<b4)
                   {
                        cout<<c4+1;
                     cout<<" character ‘]‘ is wrong."<<endl;
                   }
                 if(b5<b6)
                    {
                         cout<<c6+1;
                     cout<<" character ‘)‘ is wrong."<<endl;
                    }
                 if(b7<b8)
                    {
                         cout<<c8+1;
                     cout<<" character ‘>‘ is wrong."<<endl;
                    }
           }
   }
   private:
   char a[100];
   int b1;
   int c1;
   int b2;
   int c2;
   int b3;
   int c3;
   int b4;
   int c4;
   int b5;
   int c5;
   int b6;
   int c6;
   int b7;
   int c7;
   int b8;
   int c8;

};
int main()
{
 lilang data;
 data.Input();
 data.Check();
 return 0;
}

括号匹配

标签:

原文地址:http://www.cnblogs.com/llforeverlove/p/5356066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!