Problem Statement
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
The brackets must close in the correct order,
"()" and "()[]{}" are all valid but "(]" and "([)]" are not.
Link to GitHub :Code
Solution
- Move all the string into charArray
- Iterate through the charArray. While iterating push the opposite characters to a stack
- In the next iteration compare the closing parentheses with the one in the stack.If it does not match then return false
- Return true if it passes through the iteration with matching parentheses
public static boolean get(String s) { Stack<Character> stack= new Stack<Character>(); //Iterate through the string for(char c: s.toCharArray()) { if(c =='(') { stack.push(')'); } else if(c=='{') { stack.push('}'); } else if(c=='[') { stack.push(']'); } else if(stack.isEmpty() || stack.pop()!=c) { return false; } } //It would return true if the stack is empty or it would return false return stack.isEmpty();

No comments:
Post a Comment