2023. 8. 23. 11:13ใFrontEnd/leet code
Description
Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
s๋ (),{},[]๋ง ๋ค์ด๊ฐ ์ ์๋๋ด
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.
- Every close bracket has a corresponding open bracket of the same type.
์ด๋ฆผ ๊ธฐํธ๋ ๋ซํ ๊ธฐํธ ๋ ๋ค ์์ด์ผ ํ๋๋ด ๊ทผ๋ฐ ์ ํํ๊ฒ ๋ซํ์ผํจ ('()'๋ ๋๋๋ฐ ')(' ์ด๊ฑด ์๋๋ ๋ฏ)
์ ์ถ๋ ฅ ์์
Example 1:
Input: s = "()"
Output: true
Example 2:
Input: s = "()[]{}"
Output: true
Example 3:
Input: s = "(]"
Output: false
๋ฌธ์ ํ์ด
์ด๋ ค์์ ํํธ๋ฅผ ๋จผ์ ๋ดค๋คใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ
stack์ ์ฌ์ฉํ๊ณ ,,,์ด๋ฆผ ๊ดํธ๊ฐ ์์ stack์ pushํ๊ณ ,,,,๋ซ์นจ ๊ดํธ๊ฐ ๋ง์ง๋ง์ด ์๋๋ฉด false return,,,
var isValid = function(s) {
const stack = [];
for (let i=0; i<s.length; i++) {
let ss = s.charAt(i);
switch(ss) {
case '(' : stack.push(')');
break;
case '{' : stack.push('}');
break;
case '[' : stack.push(']');
break;
default:
if (ss !== stack.pop()) {
return false;
}
}
}
return stack.length === 0;
};
๋ฌธ์๋ค์ ๋ด์๋ stack์ ๋ง๋ค๊ณ for ๋ฌธ ์์์ switch๋ก ๋น๊ต ์ฌ๋ ๊ดํธ๊ฐ ์์ผ๋ฉด ์ง์ด ๋ง๋ ๋ซ๋ ๊ดํธ๋ฅผ push ํด์ค
default๊ฐ์ผ๋ก๋ stack์ ๋ง์ง๋ง ๋ฌธ์๊ฐ ๋ซํ ๊ดํธ๊ฐ ์๋๋ฉด false ๋ฐํํ๋ผ๊ณ ํจ.(๋ฌธ์ ํด์ค ์ฐธ๊ณ ํจ)
๊ฒฐ๊ณผ
'FrontEnd > leet code' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[leet code - easy] Palindrome Number ๋ฌธ์ ํ์ด (0) | 2023.08.22 |
---|---|
[leet code - easy] two sum ๋ฌธ์ ํ์ด (0) | 2023.08.21 |