思路:順序棧的應用,(但是這道題的括號有優先順序,另外一道題參考我的另外乙個文章. 傳送門)
遍歷字串,左右括號分別處理
左括號
若棧為空或者棧頂元素優先順序大於將要入棧元素,即可入棧.
反之,不可行,跳出迴圈
右括號
若棧不為空,比較棧頂元素,可以匹配則刪除棧頂元素,不匹配跳出迴圈
若棧為空,直接跳出迴圈
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...