validParentheses

這個是一個括號匹配問題,可以說刷leetcode以來這是我一次有自己設計算法,可能不盡如人意,我主要是運用了一個字典,給每一個括號一一個整數值,方便接下來的計算過程。整個代碼流程就是:

1,判斷字符串長度是奇數還是偶數,如果奇數直接報錯

2,如果遇到的是前置括號就將其存入一個list,知道遇到下一個後置括號

3,在遇到後置括號的時候先檢查臨時list是否有內容,如沒有直接報錯,如有就與臨時list最後一個元素進行匹配,匹配成功就將臨時list刪除末尾元素,反覆如此,如沒有匹配成功報錯

注;想法在於驗證條件引入了臨時list,成功匹配的條件一定有臨時list爲空

s = input()
length = len(s)
d = {'(':1, '[':2, '{':3, '}':4, ']':5, ')':6,}
i = 0
b = []
i = 0
sign = 0
if length % 2 != 0:
    print(False)
else:
    for i in range(length):
        if d[s[i]] < 4:
            b.append(s[i])
        else:
            if len(b) == 0 and d[s[i]] > 3:
                print(False)
                sign = 1
                break
            else:
                if d[s[i]] + d[b[-1]] == 7:
                    b.pop()
                else:
                    print(False)
                    sign = 1
                    break
        sign = 0
    if sign == 0 and len(b) == 0:
        print(True)
    else:
        print(False)

發佈了24 篇原創文章 · 獲贊 1 · 訪問量 4072
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章