ValidParentheses
public static boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
char[] arr = s.toCharArray();
for(int i = 0; i < arr.length; i++){
if(')' == arr[i] || '}' == arr[i] || ']' == arr[i]) {
if(!stack.isEmpty()) {
char a = stack.pop();
int num = arr[i] - a;
if (num != 1 && num != 2) {
stack.push(arr[i]);
}
} else {
stack.push(arr[i]);
}
}else {
stack.push(arr[i]);
}
}
return stack.isEmpty();
}
Stack<Character> stack = new Stack<>();
char[] arr = s.toCharArray();
// Stack -> ๊ดํธ ๊ฒ์ฆ์ฉ
// char[] -> s๋ฅผ ์ชผ๊ฐ ๋ฐฐ์ด
๋ซ๋ ๊ดํธ์ผ ๋ ๋ก์ง ์ํ
if(')' == arr[i] || '}' == arr[i] || ']' == arr[i]) {
if(!stack.isEmpty()) { // stack ์ด ๋น์ด์์ง ์์ ๋
char a = stack.pop();
int num = arr[i] - a; // 1 ๋๋ 2 ์ฐจ์ด๊ฐ ๋จ.(์์คํค ์ฝ๋...)
if (num != 1 && num != 2) {
stack.push(arr[i]); // 1๋๋ 2์ฐจ์ด๊ฐ ์๋ ๋ -> ์๋ก ๋ค๋ฅธ ๊ดํธ์ผ ๋ ๋ค์ ๋ฃ์
}
} else { // ์คํ์ด ๋น์ด์์ผ๋ฉด ์คํ์ ์ฒ์๊ฑธ ๋ฃ์.
stack.push(arr[i]);
}
}else { // ์ด๋ฆฐ ๊ดํธ ์ผ ๋ ์คํ์ ์ถ๊ฐ
stack.push(arr[i]);
}
for ๋ฌธ์ด ๋ค ๋ ํ stack ์ ๋จ์์๋ ๊ฐ์ด ์์ผ๋ฉด false, ๋ฐฐ์ด์ด ๋น์ด ์์ผ๋ฉด true ๋ฅผ ๋ฐํ
Last updated
Was this helpful?