LeetCode 棧 佇列問題 棧常見題型

2021-10-19 08:56:29 字數 2276 閱讀 1528

20. 有效的括號

難度簡單2135收藏分享切換為英文接收動態反饋

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

有效字串需滿足:

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

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

示例 1:

輸入:s = "()"

輸出:true

示例 2:

輸入:s = "(){}"

輸出:true

題解

class

solution

else

character top = stack.

pop();

if((c ==

')'&& top !=

'(')

||(c ==

']'&& top !=

'[')

||(c ==

'}'&& top !='}

}return stack.

size()

==0;}

}

150. 逆波蘭表示式求值

難度中等236收藏分享切換為英文接收動態反饋

根據逆波蘭表示法,求表示式的值。

有效的運算子包括+,-,*,/。每個運算物件可以是整數,也可以是另乙個逆波蘭表示式。

說明:

示例 1:

輸入: ["2", "1", "+", "3", "*"]

輸出: 9

解釋: 該算式轉化為常見的中綴算術表示式為:((2 + 1) * 3) = 9

示例 2:

輸入: ["4", "13", "5", "/", "+"]

輸出: 6

解釋: 該算式轉化為常見的中綴算術表示式為:(4 + (13 / 5)) = 6

題解

class

solution

}else

}return stack.

pop();

}}

71. 簡化路徑

難度中等240收藏分享切換為英文接收動態反饋

以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。

在 unix 風格的檔案系統中,乙個點(.)表示當前目錄本身;此外,兩個點 (..) 表示將目錄切換到上一級(指向父目錄);兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱:linux / unix中的絕對路徑 vs 相對路徑

請注意,返回的規範路徑必須始終以斜槓/開頭,並且兩個目錄名之間必須只有乙個斜槓/。最後乙個目錄名(如果存在)不能/結尾。此外,規範路徑必須是表示絕對路徑的最短字串。

示例 1:

輸入:"/home/"

輸出:"/home"

解釋:注意,最後乙個目錄名後面沒有斜槓。

示例 2:

輸入:"/../"

輸出:"/"

題解

class

solution

else

if(dirs[i]

.length()

==2&& stack.

size()

!=0)}

string res ="";

for(string s : stack)

return res.

length()

==0?"/"

: res ;

}}

leetcode 棧和佇列

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

LeetCode棧和佇列

棧和佇列 棧是限定僅在表尾進行插入和刪除操作的後進先出 lifo 的線性表 佇列是只允許在表的一端進行插入,在另一端刪除元素的先進先出 fifo 的線性表 225.用佇列實現棧 使用佇列實現棧的下列操作 注意 思路 為了滿足棧的特性,即最 棧的元素最先出棧,在使用佇列實現棧時,應滿足佇列前端的元素是...

LeetCode 棧與佇列

用乙個佇列就可以實現棧 取元素時要把佇列尾元素取出 最後進入佇列的元素 把前n 1個元素放到佇列尾並彈出,這樣佇列的頭部就是最後進入佇列的元素了,取出他即可 class mystack void push int x intpop int res que.front que.pop return r...