1. 程式人生 > >leetcode:括號匹配問題

leetcode:括號匹配問題

題意很簡單,就是給定一系列的(){}[]括號的字串,讓程式檢測出括號是否一一對應,比如({)}這樣的就是不合格的。 思路還是很簡單,就用棧來解決,後進先出,看新的}])元素,是否和棧頂的({[元素匹配。 記錄一下自己失誤的地方,一個是設定棧的元素型別時,忘了可以直接用string::value_type來取得字串的元素型別,當然,根據文件顯示,value_type即是char型別。 另一個就是嚴重犯2,判定匹配時居然用等號,curchar==ans.top(),這顯然是永不會成立的,畢竟'('和')'怎麼可能會相等呢..... 另外一個就是,忘記考慮棧為空的條件,比如只輸入一個']',那麼顯然要判定棧是否為空再用ans.top()。 最後一個就是看論壇大神的優化方法,直接用一個switch語句識別全部型別的字元,省下了很多if-else語句的時間開銷