括號的匹配 SWUSTOJ116

2021-10-02 21:15:23 字數 861 閱讀 8755

思路:順序棧的應用,(但是這道題的括號有優先順序,另外一道題參考我的另外乙個文章. 傳送門)

遍歷字串,左右括號分別處理

左括號

若棧為空或者棧頂元素優先順序大於將要入棧元素,即可入棧.

反之,不可行,跳出迴圈

右括號

若棧不為空,比較棧頂元素,可以匹配則刪除棧頂元素,不匹配跳出迴圈

若棧為空,直接跳出迴圈

ac**:

#include

using

namespace std;

int t;

intf

(char ch)':

return4;

break

;case

'[':

case

']':

return3;

break

;case

'(':

case

')':

return2;

break

;case

':case

'>'

:return1;

break;}

}int

main()

else

}else

else}}

if(flag)

}return0;

}

括號匹配的檢驗

一 題目 假設表示式中可以允許包含三種括號 圓括號 和 方括號 和 和花括號 且這三種括號可按任意的次序巢狀使用。即 或者 等為正確格式,或者均為不正確的格式。編寫判別給定表示式中所含括號是否正確配對出現的演算法。二 思路 檢驗括號是否匹配的方法可以用 期待的急迫程度 這個概念來描述。例如,考慮下列...

7012 括號的匹配

time limit 10 second memory limit 2 mb 問題描述 假設乙個表示式有英文本母 小寫 整數,運算子 和左右小 圓 括號構成,以 作為表示式的結束符.請編寫乙個程式檢查表示式中的左右圓括號是否匹配,若匹 配,則返回 yes 否則返回 no 假設表示式長度小於255,左...

20 有效的括號(括號匹配 棧)

給定乙個只包括 的字串 s 判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。示例 1 輸入 s 輸出 true 示例 2 輸入 s 輸出 true 示例 3 輸入 s 輸出 false 示例 4 輸入 s 輸出 false 示例 5 輸入 s 輸出 t...