LeetCode---20.有效的括號
阿新 • • 發佈:2018-11-10
題目來源:https://leetcode-cn.com/problems/valid-parentheses/description/
題目描述:
演算法描述:
1.遇見左括號就將該括號入棧
2.遇見右括號就開始判斷,如果這時候棧空,說明這個右括號一定沒有左括號和它匹配了,直接返回false。如果棧不空,再判斷該右括號和棧頂和棧頂左括號是否匹配,若不匹配直接返回false。
3.所有括號遍歷完之後,判斷棧內是否還有元素,若有返回false,若沒有返回true。
bool isValid(char* s) { int len=strlen(s); if (len == 0) { return true; } else if (len % 2 != 0) { return false; } int stack[len+1]; int top=-1; for(int i=0;i<len;i++){ switch(s[i]){ case '(': case '[': case '{': stack[++top]=s[i]; break; case ')': if (top==-1 || stack[top--] != '(') { return false; } break; case ']': if (top==-1 || stack[top--] != '[') { return false; } break; case '}': if (top==-1 || stack[top--] != '{') { return false; } break; } } return top==-1?true:false; }