ACM線上練習-括弧配對問題

來源:互聯網
上載者:User

括弧配對問題描述現在,有一行括弧序列,請你檢查這行括弧是否配對。輸入第一行輸入一個數N(0<N<=100),表示有N組測試資料。後面的N行輸入多組輸入資料,每組輸入資料都是一個字串S(S的長度小於10000,且S不是空串),測試資料群組數少於5組。資料保證S中只含有"[","]","(",")"四種字元輸出每組輸入資料的輸出佔一行,如果該字串中所含的括弧是配對的,則輸出Yes,如果不配對則輸出No範例輸入3[(])(])([[]()])範例輸出NoNoYes 我的程式,採用語言c++。思路:將未匹配字元入棧,沒當有匹配字元,出棧。最後檢測棧是否為空白即可。源碼已經過線上系統驗證。SyntaxMatch.cpp[cpp] #include <iostream>  #include <vector>  using namespace std;    int main(void)  {    int nLineNum = 0;    cin>>nLineNum;    if(nLineNum<0 || nLineNum>100)    {      cout<<"Please input number 0<n<=100."<<endl;      return 1;    }        vector<string> vInputList;    for(int i=0; i<nLineNum; ++i)    {      string sInputStr="";      cin>>sInputStr;            if(sInputStr.size() == 0)      {        cout<<"Error:Input string is empty."<<endl;        --i;        continue;      }            if(sInputStr.size() >=10000)      {        cout<<"Error:Input string is too long."<<endl;        --i;        continue;      }            vInputList.push_back(sInputStr);    }        vector<string>::iterator vIter = vInputList.begin();    for(; vIter != vInputList.end(); ++vIter)    {      string sUnMatch="";      string sInput=*vIter;      string::iterator sIter = sInput.begin();      for(; sIter != sInput.end(); ++sIter)      {        char cCurChar = *sIter;        if(sUnMatch.empty())        {          sUnMatch.push_back(cCurChar);        }        else        {          string::iterator sEndIter = sUnMatch.end() - 1;          char cEndChar=*sEndIter;          if((cEndChar=='[' && cCurChar==']')            ||(cEndChar=='(' && cCurChar==')'))          {            sUnMatch.erase(sEndIter);          }          else          {            sUnMatch.push_back(cCurChar);          }        }      }            if(sUnMatch.empty())      {        cout<<"Yes"<<endl;      }      else      {        cout<<"No"<<endl;      }    }      return 1;  }   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.