20 - Valid Parentheses
JAVA
class Solution { public boolean isValid(String s) { Deque<Character> stk = new ArrayDeque<>(); for (char c : s.toCharArray()) { if (c == '(' || c == '{' || c == '[') { stk.push(c); } else if (stk.isEmpty() || !match(stk.pop(), c)) { return false; } } return stk.isEmpty(); } private boolean match(char l, char r) { return (l == '(' && r == ')') || (l == '{' && r == '}') || (l == '[' && r == ']'); } }
C++
class Solution { public: bool isValid(string s) { string stk; for (char c : s) { if (c == '(' || c == '{' || c == '[') stk.push_back(c); else if (stk.empty() || !match(stk.back(), c)) return false; else stk.pop_back(); } return stk.empty(); } bool match(char l, char r) { return (l == '(' && r == ')') || (l == '[' && r == ']') || (l == '{' && r == '}'); } };
Comments
Post a Comment