南陽OJ-2 括弧配對 (資料結構-棧的應用)

來源:互聯網
上載者:User

標籤:

括弧配對問題

時間限制:3000 ms  |  記憶體限制:65535 KB難度:3 
描述
現在,有一行括弧序列,請你檢查這行括弧是否配對。
 
輸入
第一行輸入一個數N(0<N<=100),表示有N組測試資料。後面的N行輸入多組輸入資料,每組輸入資料都是一個字串S(S的長度小於10000,且S不是空串),測試資料群組數少於5組。資料保證S中只含有"[","]","(",")"四種字元
輸出
每組輸入資料的輸出佔一行,如果該字串中所含的括弧是配對的,則輸出Yes,如果不配對則輸出No
範例輸入
3[(])(])([[]()])
範例輸出
NoNoYes
此題意在考查資料結構-棧的用法。
#include<iostream>#include<stack>using namespace std;int main() {  int n, m;  cin >> n;  while (n--) {    char str[10005];    stack<char>s;//定義儲存字元類型資料的棧 。     cin >> str;    for (int i = 0; str[i] != ‘\0‘; i++) {      if (s.empty()) s.push(str[i]);// 如果棧空,資料直接進棧。       else {        if (s.top() + 1 == str[i] || s.top() + 2 == str[i])//根據括弧ASC碼差值判斷是否對應           s.pop();//如果str[i]與棧頂的括弧對應,則棧頂元素出棧。         else //否則str[i]進棧。           s.push(str[i]);      }    }    if (s.empty())//字串處理完後,判斷棧是否為空白 。       cout << "Yes" << endl;//棧空則表示所有括弧都對應 。     else//反之則有括弧不對應。       cout << "No"  << endl;  }}        

  如果有錯誤描述,歡迎指出哈!!!!共同探討一起進步!!!

南陽OJ-2 括弧配對 (資料結構-棧的應用)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.