題目
基本思路
在這裏解題使用到棧
- 遍歷字符串
- 如果當前字符串爲"(","{","[",則加入到棧中
- 如果當前字符串爲"}",")","]",
- (1) 如果此時棧爲空,則返回False
- (2) 若棧不爲空,且爲棧頂元素對應的右半括號,則取出棧頂元素,繼續循環
- (3) 若不爲棧頂元素對應的右半邊括號,返回False
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
#創建空列表
stack=[]
#創建一個字典
map={"{":"}","(":")","[":"]"}
for char in s:
#當元素是鍵{ ( [
if char in map:
#將元素添加到列表
stack.append(map[char])
else:
#當長度不爲零
if len(stack) != 0:
#列表最後一個被刪除,並且最後一個元素的值賦給top_element
top_element=stack.pop()
if char!=top_element:
return False
else:
continue
else:
return False
#判斷列表是否爲空
return len(stack)==0