/**最長括號匹配* @param s** 輸入的字串只包含左括號,右括號
* 1.起始匹配的位置start=-1,匹配的最長長度ml=0
* 2.遍歷第i個字元c
* 3.如果c是左括號,壓棧
* 4.如果c是右括號,則與棧頂元素進行匹配
* 4.1 如果棧為空,則此時的c無法匹配,更新start=i,為下一次匹配做準備
* 4.2 如果棧非空,則出棧
* 出棧後為空,則更新ml-max(i-start,ml)
* 出棧後不為空,則更新ml=max(i-t),t為棧頂元素
* 遍歷n個字元,時間複雜度為o(n)
*
* @return
*/public int getmaxmatchlength(string s)
stackstack = new stack();
int start = -1;
int ml = 0;
for(int i=0;i
最長括號匹配長度
問題 假如給你乙個由 和 組成的乙個隨機的括號序列,當然,這個括號序列肯定不能保證是左右括號匹配的,所以給你的任務便是去掉其中的一些括號,使得剩下的括號序列能夠左右括號匹配且長度最長,即最長的合法括號序列。輸入 測試資料報括多個,每個測試資料只有一行,即乙個隨機的括號序列,該括號序列的長度保證不超過...
程式練習 括號匹配
1 include2 include3 include45 define max 2067 8 typedef struct stackstack 1213 char gettop s stack h 得到棧頂元素 1421 22 stack out s stack h 出棧23 3637 stac...
leetcode演算法練習 32 最長有效括號
雜記 stack 所有題目源 git位址 題目給定乙個只包含 和 的字串,找出最長的包含有效括號的子串的長度。示例 1 輸入 輸出 2 解釋 最長有效括號子串為 示例 2 輸入 輸出 4 解釋 最長有效括號子串為 方案 看到括號匹配想到stackclass solution return ans 複...