g0001_0100.s0020_valid_parentheses.Solution Maven / Gradle / Ivy
package g0001_0100.s0020_valid_parentheses;
// #Easy #Top_100_Liked_Questions #Top_Interview_Questions #String #Stack
// #Data_Structure_I_Day_9_Stack_Queue #Udemy_Strings
// #2022_06_14_Time_3_ms_(51.72%)_Space_41.5_MB_(73.27%)
import java.util.Stack;
/**
* 20 - Valid Parentheses\.
*
* Easy
*
* Given a string `s` containing just the characters `'('`, `')'`, `'{'`, `'}'`, `'['` and `']'`, determine if the input string is valid.
*
* An input string is valid if:
*
* 1. Open brackets must be closed by the same type of brackets.
* 2. 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
*
* **Example 4:**
*
* **Input:** s = "([)]"
*
* **Output:** false
*
* **Example 5:**
*
* **Input:** s = "{[]}"
*
* **Output:** true
*
* **Constraints:**
*
* * 1 <= s.length <= 104
* * `s` consists of parentheses only `'()[]{}'`.
**/
@SuppressWarnings("java:S1149")
public class Solution {
public boolean isValid(String s) {
Stack stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '(' || c == '[' || c == '{') {
stack.push(c);
} else if (c == ')' && !stack.isEmpty() && stack.peek() == '(') {
stack.pop();
} else if (c == '}' && !stack.isEmpty() && stack.peek() == '{') {
stack.pop();
} else if (c == ']' && !stack.isEmpty() && stack.peek() == '[') {
stack.pop();
} else {
return false;
}
}
return stack.isEmpty();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy