leecode第二十题(有效的括号)
生活随笔
收集整理的這篇文章主要介紹了
leecode第二十题(有效的括号)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
class Solution { public:bool isValid(string s) {int start=0,end=s.size()-1;if(end==-1)//萬萬沒想到,他把空字符串當成true了return true;int ss[end+1];//歪方法,把左括號全部<0,右括號都>0,且同類型符號絕對值一樣for(int i=0;i<end+1;i++){if(s[i]=='(')ss[i]=-1;else if(s[i]==')')ss[i]=1;else if(s[i]=='{')ss[i]=-2;else if(s[i]=='}')ss[i]=2;else if(s[i]=='[')ss[i]=-3;else if(s[i]==']')ss[i]=3;elsereturn false;}stack<int> str;while(start<end+1)//要等于end啊,老是忘 {if(ss[start]<0)//如果小于0就入棧 str.push(ss[start]);if(ss[start]>0)//如果大于0,判斷棧空不空,不空的話棧頂和當前數是否編號 {if(!str.empty() && ss[start]==-1*(str.top()))str.pop();elsereturn false;//否則假 }start++;}if(!str.empty())//結束后檢測棧空不,不然對于全是左括號的就通過了return false;return true;} };
?
分析:
一個簡單題啊,還是情況沒分析到位,一開始思路錯了。
后來思路對了,但是程序總是有毛病,但是總得來說還是情況沒分析到位。
轉載于:https://www.cnblogs.com/CJT-blog/p/10583094.html
總結
以上是生活随笔為你收集整理的leecode第二十题(有效的括号)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: codeforces3A
- 下一篇: 一级建造师多少钱啊?