1. 程式人生 > >Leetcode刷題記(6)——有效的括號

Leetcode刷題記(6)——有效的括號

匹配 -c 一點 tro 過程 進行 加油! ont leet

勤勞的搬運工~

給定一個只包括 ‘(‘‘)‘‘{‘‘}‘‘[‘‘]‘ 的字符串,判斷字符串是否有效。

有效字符串需滿足:

  1. 左括號必須用相同類型的右括號閉合。
  2. 左括號必須以正確的順序閉合。

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

示例 1:

輸入: "()"
輸出: true

示例 2:

輸入: "()[]{}"
輸出: true

解題過程:
剛開始時嘗試著把所有不符合規則或所有符合規則的情況羅列出來,用多個if語句進行判斷,被折磨了半小時後果斷放棄了,完全理不清楚,總會有一些情況沒考慮到!!!
無奈沒忍住偷偷的看了一眼別人的解答:用!!!數據結構真的太重要了,完全沒有想起來使用數據結構。
用棧:判斷如果是左半邊括號,直接壓入棧中;如果是右半括號,則把取出棧頂元素判斷與當前元素是否匹配,匹配後彈出,不匹配直接輸出false;
   最後遍歷結束若都匹配,則棧為空,輸出true。
知識點!!!
數據結構——棧的用法!!!

一點碎碎念:每天晚上兩道題差不多要一個半小時,雖然花費的時間多,但真的基礎太不牢了,以前學的沒有多練習全還給學校了,希望現在開始追還不會太晚!加油!

Leetcode刷題記(6)——有效的括號