leetcode 20.有效的括号
贪心+栈。
int cnt[5]; int l[10007],t=0; class Solution { public: bool isValid(string s) { cnt[1]=0,cnt[2]=0,cnt[3]=0; int lim=s.size(); for (int i=0;i<lim;i++){ if (s[i]=='(') cnt[1]++,l[++t]=1; else if (s[i]==')'&&l[t]==1) cnt[1]--,t--; else if (s[i]=='{') cnt[2]++,l[++t]=2; else if (s[i]=='}'&&l[t]==2) cnt[2]--,t--; else if (s[i]=='[') cnt[3]++,l[++t]=3; else if (s[i]==']'&&l[t]==3) cnt[3]--,t--; else return false; if (cnt[1]<0||cnt[2]<0||cnt[3]<0) return false; } if (cnt[1]==0&&cnt[2]==0&&cnt[3]==0) return true; return false; } };

浙公网安备 33010602011771号