stack
java
class Solution {
/**
* stack
*/
public boolean isValid(String s) {
if (s.length() % 2 == 1) return false;
Deque<Character> st = new ArrayDeque<>();
char[] charArray = s.toCharArray();
for (char ch : charArray) {
switch (ch) {
case '(':
case '[':
case '{':
st.push(ch);
break;
case ')':
if (st.isEmpty() || st.pop() != '(')
return false;
break;
case ']':
if (st.isEmpty() || st.pop() != '[')
return false;
break;
case '}':
if (st.isEmpty() || st.pop() != '{')
return false;
break;
}
}
return st.isEmpty();
}
}