Leecode 20.有效的括號

題目

在這裏插入圖片描述
添加鏈接描述

基本思路

在這裏解題使用到

  • 遍歷字符串
  • 如果當前字符串爲"(","{","[",則加入到棧中
  • 如果當前字符串爲"}",")","]",
  • (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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章