leetcode 關於括號的問題 棧 dp

2021-10-10 11:43:40 字數 883 閱讀 5726

題目

假如只有前半部分**,"(()" 這個樣例都過不了。

class

solution

l=0,r=0;

reverse

(s.begin()

,s.end()

);for(

char c:s)

return ans;}}

;

class

solution}}

int ans=0;

for(

int i=

0;i++i) ans=

max(ans,dp[i]);

return ans;}}

;

題目

第一種方法:比如((())()(*)) 只算最裡面的括號對答案的權值是1

solution

}return ans;}}

;第二種方法:我不太會描述

這題就是 比如((() 棧裡面就是0,0,1

每個元素的意思是 這個左括號暫時向右能得到的分數 比如(()() 棧裡面就是0,2 因為第2個(向右可以直到(()().

棧裡每個元素都是(的意思。(()再來乙個)時,棧頂就代表((),棧頂*2就是(()),加上棧頂裡面的乙個 那是同一級別的.

class
solution

}return st.

top();}};

關於leetcode的「有效的括號」的練習

解題思路 字串要達到特殊的 對稱 括號才是有效的,因此可以借助棧,不過要注意先把邊界寫好,例如空字串和奇數個符號的情況就不用進入迴圈,直接返回結果。入棧時,需要先判斷,如果碰到一對滿足條件的括號,例如 就彈出 不滿足就入棧,空棧也入棧,若最後棧為空,代表字串是有效的。如下 參考大佬wallcwr的題...

leetcode 有效的括號

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

leetcode 有效的括號

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