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.
Every close bracket has a corresponding open bracket of the same type.
Example 1:
Input: s = "()"
Output: true
Example 2:
Input: s = "()[]{}"
Output: true
Example 3:
Input: s = "(]"
Output: false
class Solution {
public boolean isValid(String s) {
HashMap<Character, Character> Hmap = new HashMap<Character, Character>();
Hmap.put(')','(');
Hmap.put('}','{');
Hmap.put(']','[');
Stack<Character> stack = new Stack<Character>();
for (int idx = 0; idx < s.length(); idx++){
if (s.charAt(idx) == '(' || s.charAt(idx) == '{' || s.charAt(idx) == '[') {
stack.push(s.charAt(idx));
continue;
}
if (stack.size() == 0 || Hmap.get(s.charAt(idx)) != stack.pop()) {
return false;
}
}
if (stack.size() == 0) {
return true;
}
return false;
}
}