0%

Leetcode020-validParentheses

Description

Given a string 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.
  • Note that an empty string is also considered valid.

Example

Example 1:

1
2
Input: "()"
Output: true

Example 2:
1
2
Input: "()[]{}"
Output: true

Example 3:
1
2
Input: "(]"
Output: false

Example 4:
1
2
Input: "([)]"
Output: false

Example 5:
1
2
Input: "{[]}"
Output: true

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
public boolean isValid(String s) {
if(s == null || s.length() == 0) return true;
Stack<Character> st = new Stack<>();
for (char ch: s.toCharArray()){
if (ch == '(' || ch == '[' || ch == '{') st.push(ch);
else switch (ch){
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;
}
}
if (!st.isEmpty()) return false;
return true;
}
}