https://leetcode.com/problems/valid-parentheses/description/
Valid Parentheses - LeetCode
Can you solve this real interview question? Valid Parentheses - 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 sam
leetcode.com
조건
1. 여는괄호는 반드시 같은 타입의 괄호로 닫혀야한다
2. 여는 괄호는 반드시 올바른 순서대로 닫혀야 한다.
3. 모든 닫는 괄호는 여는 괄호와 같은 타입이여야 한다.
예시
Example 1:
Input: s = "()"
Output: true
Example 2:
Input: s = "()[]{}"
Output: true
Example 3:
Input s = "(]"
Output: false
import java.util.*;
class Solution {
boolean isValid(String s) {
Stack<Character> stack = new Stack<>();//char형 스택
//매개변수 String 반복
for (int i = 0; i < s.length(); i++) {
//여는괄호가 우선 들어오는지 확인
if (s.charAt(i) == '(' || s.charAt(i) == '{' || s.charAt(i) == '[') {
stack.push(s.charAt(i));
} else {
//여는괄호가 먼저 들어오지 않았다 -> false
if(stack.isEmpty()){
return false;
}
//여는괄호에 맞춰 닫는괄호확인
if(stack.peek() == '(' && s.charAt(i) == ')'
|| stack.peek() == '{' && s.charAt(i) == '}'
|| stack.peek() == '[' && s.charAt(i) == ']')
{
//일치한다면 pop()
stack.pop();
} else {
//틀릴 시 false
return false;
}
}
}
//stack이 비어있다면 올바른 괄호
return stack.isEmpty();
}
}
'Algorithm > leetcode' 카테고리의 다른 글
[leetcode] 1021.Remove Outermost Parentheses (0) | 2023.08.28 |
---|---|
[leetcode] 844.Backspace String compare (0) | 2023.08.27 |
[leetcode] 155.Min Stack (0) | 2023.08.26 |
[leetcode] 856.Score of Parentheses(Retry) (0) | 2023.08.20 |
[leetcode] 682.Baseball Game (0) | 2023.08.19 |