力ボタンブラシ問題の道20.有効なかっこPython解
3633 ワード
‘(’,’)’,’{’,’}’,’[’,’]’のみを含む文字列sを与え,文字列が有効であるか否かを判断する.
有効な文字列は次のとおりです.
左かっこは同じタイプの右かっこで閉じる必要があります.左かっこは正しい順序で閉じなければなりません.
例1:
入力:s=「()」出力:true例2:
入力:s=「()[]{}」出力:true例3:
入力:s=「(」出力:false例4:
入力:s=「([)]出力:false例5:
入力:s="{[]}"出力:true
ヒント:
1<=s.length<=104 sは括弧'()[]{}'のみからなる
ソース:力ボタン(LeetCode)リンク:https://leetcode-cn.com/problems/valid-parentheses
解:
有効な文字列は次のとおりです.
左かっこは同じタイプの右かっこで閉じる必要があります.左かっこは正しい順序で閉じなければなりません.
例1:
入力:s=「()」出力:true例2:
入力:s=「()[]{}」出力:true例3:
入力:s=「(」出力:false例4:
入力:s=「([)]出力:false例5:
入力:s="{[]}"出力:true
ヒント:
1<=s.length<=104 sは括弧'()[]{}'のみからなる
ソース:力ボタン(LeetCode)リンク:https://leetcode-cn.com/problems/valid-parentheses
解:
def isValid(self, s: str) -> bool:
if len(s) % 2 == 1:
return False
d = {
'(': ')',
'{': '}',
'[': ']',
None: None
}
l = [None]
for i in s:
if i in d:
l.append(i)
elif d[l.pop()] == i:
pass
else:
return False
# l.remove(None)
return not l[1:]