三 leetcode之有效的括號

2021-10-06 05:49:52 字數 1083 閱讀 5579

題目描述:

給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。

有效字串需滿足:

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

示例 1:

輸入: "()"

輸出: true

示例 2:

輸入: "(){}"

輸出: true

示例 3:

輸入: "(]"

輸出: false

示例 4:

輸入: "([)]"

輸出: false

示例 5:

輸入: ""

輸出: true

/

思路:假設給定字串"{}" 首先這個是合法字串 返回值是true

01;我們可以先初始化乙個棧物件stack,從下標=0的數入棧。然後如果下乙個值是棧頂元素所對應的右結束符,就彈出棧頂元素。

02;如果不是的話就入棧此元素,如果迴圈到最後stack為空,說明括號全部匹配。返回true

/

class

solution

//判斷棧頂元素和當前下標元素是否匹配if(

matchsymbol

(topele)

==s.

charat

(i))

else

}//最終判斷棧是否為空

return stack.

empty()

;}//建立符合對應關係

public

char

matchsymbol

(char ch)';

case

'[':

return

']';

case

'(':

return

')';

default

:return

' ';}}

}

LeetCode演算法練習之有效的括號

編譯器在編譯的時候,就會使用棧來做運算,儲存運算子,分配運算順序。所以說,語義分析方面的問題,很多都與棧這種資料結構有關。分析這道題目,假設我們在做數學題算式子,去括號的時候必須去掉裡面的括號,才能去外面的括號。這道題也一樣,先去除裡面的括號,再去除外面的,如果所有的括號都可以去除,最終沒有括號了,...

Leetcode刷題之 有效的括號

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

LeetCode 20 棧之有效的括號

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