LeetCode刷題高階之有效的括號 20

2021-10-10 03:35:05 字數 1353 閱讀 4089

一、題目

演示示例:

二、測試**:

class solution 

elseif(

(s.charat

(i)==

')'&&st.

pop()!=

'(')

||(s.

charat

(i)==

']'&&st.

pop()!=

'[')

||(s.

charat

(i)==

'}'&&st.

pop()!=

'時,與出棧的(,[,}}

return st.

empty()

;//根據棧是否為空返回false或true,棧空為true棧不為空為false

}}

三、運**況四、刷題總結1、棧是一種操作受限的線性表只允許從一端插入和刪除資料。棧有兩種儲存方式,即線性儲存和鏈結儲存(鍊錶)。棧的乙個最重要的特徵就是棧的插入和刪除只能在棧頂進行,所以每次刪除的元素都是最後進棧的元素,故棧也被稱為後進先出(lifo)表。

2、常見的棧stack的方法:

方法描述

public boolean empty

檢查棧是否為空

public peek()

檢視棧頂

public push()

進棧public pop()

出棧,同時刪除

public int search(object o)

在棧中查詢

3、使用棧stack 建立不同型別的物件(不能使用基本資料型別而是基本資料型別對應的包裝類):

stack stack = new stack<>();//整型

stack stack = new stack<>();//字元型

4、本題實現的思路是:

(1)使用for迴圈依次遍歷字串,只要是(,[,,則先後判斷棧頂元素是否為( ,如果是則匹配成功,棧頂的(出棧,不是則返回false,不匹配;判斷棧頂元素是否為],如果是則匹配成功,棧頂中[出棧;判斷棧頂元素是否為},如果是則匹配成功,棧頂中{出棧;

(3)根據empty()判斷棧中是否為空,為空則返回true,不為空則返回false。

Leetcode刷題之 有效的括號

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

LeetCode刷題高階之有序陣列的平方 977

一 題目 演示示例 二 測試 class solution arrays.sort a 利用arrays類的sort方法進行公升序排序 return a 若寫成return arrays.sort a 會報void無法轉換成int 錯 三 運 況 四 刷題總結 在程式的最後,返回值若寫成return...

Leetcode刷題 有效的括號

思路 先把符號輸入字典,每對符號的左半邊設定為位置,右半邊設定為值,方便後續進行比對。利用出入棧的思想,設定棧stack,將字串中的值cpush入棧直至c不在字典裡。然後再將棧裡的值pop出來與c對比,注意此時pop出來的值是字典的位置索引dic stack.pop 所對應的值應該是符號的右半邊。如...