演算法基礎練習 最長括號匹配

2021-07-31 06:12:06 字數 534 閱讀 5616

/**最長括號匹配

** 輸入的字串只包含左括號,右括號

* 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)

*

* @param s

* @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 複...