leetcode 20 有效的括號

2021-09-26 10:54:35 字數 1701 閱讀 4219

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

有效字串需滿足:

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

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

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

示例 1:

輸入: 「()」

輸出: true

示例 2:

輸入: 「(){}」

輸出: true

示例 3:

輸入: 「(]」

輸出: false

示例 4:

輸入: 「([)]」

輸出: false

示例 5:

輸入: 「」

輸出: true

用乙個棧來存字串,"(","[",""出棧,出棧時檢查一下括號型別是否匹配,如果程式結束,棧為空,說明匹配成功,奇數長度肯定是錯誤的,開始時判斷一下。

**實現:

public

boolean

isvalid

(string s)

stack

stack =

newstack

<

>()

;try

}catch

(exception e)

if(stack.

empty()

)else

}private

void

judgeaction

(stack

stack,character c)

throws exception

else

;break

;case

']':

if(stack.

peek()

=='['

)else

;break

;case

'}':

if(stack.

peek()

=='else

;break;}

}

提交後發現執行了11ms,平均水平的11%,所以肯定是存在問題的。

我的**使用了switch來判斷出現的括號,好像有些麻煩了,使用map,將3種型別的括號對應起來,好像**會非常的簡潔。

private hashmap

public

solution()

','public

boolean

isvalid

(string s)

}else

}// if the stack still contains elements, then it is an invalid expression.

return stack.

isempty()

;}實際執行下來8ms,平均值的33%。

public

boolean

isvalid

(string s)")

)",""

);}if

(s.length()

==0)else

}

LeetCode20有效括號

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

Leetcode 20 有效括號

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

leetcode 20 有效括號

怎麼減少if語句,判斷是否是某乙個值,將值存進map中,是否在map中,若在,則是 匹配用map 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出...