//Given a string s containing just the characters '(', ')', '{', '}', '[' and ']
//', determine if the input string is valid.
//
// An input string is valid if:
//
//
// Open brackets must be closed by the same type of brackets.
// Open brackets must be closed in the correct order.
//
//
//
// Example 1:
//
//
//Input: s = "()"
//Output: true
//
//
// Example 2:
//
//
//Input: s = "()[]{}"
//Output: true
//
//
// Example 3:
//
//
//Input: s = "(]"
//Output: false
//
//
//
// Constraints:
//
//
// 1 <= s.length <= 104
// s consists of parentheses only '()[]{}'.
//
// Related Topics String Stack
// 👍 13610 👎 616
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public boolean isValid(String s) {
Stack<Character> myStack = new Stack<>();
for (char ch : s.toCharArray()) {
if (ch == '(' || ch == '[' || ch == '{') {
myStack.push(ch);
} else {
if (myStack.isEmpty()) {
return false;
}
char top = myStack.peek();
if ((top == '(' && ch == ')') ||
(top == '[' && ch == ']') ||
(top == '{' && ch == '}')) {
myStack.pop();
} else {
return false;
}
}
}
return myStack.isEmpty();
}
}
//leetcode submit region end(Prohibit modification and deletion)