[Leetcode] 20. Valid Parentheses โ
Problem โ
๊ดํธ (
,)
,[
,]
,{
,}
๊ฐ ์ฃผ์ด์ง๋ฉด ๊ดํธ์ ์ด๊ณ ๋ซํ๋ ์์๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธ
Solution โ
- ๋ฌธ์์ด์ ์์ฐจ์ ์ผ๋ก ๋ฐ๋๋ค.
- ๊ดํธ๊ฐ ์ด๋ฆฌ๋ฉด stack์ ์ง์ด๋ฃ๊ณ , ๋ซํ๋ ๋ถ๋ถ์ด๋ผ๋ฉด stack์์ ๋บ๋ค.
- stack์์ ๋บ ๊ฐ๊ณผ ๊ดํธ๊ฐ ๋ซํ ๋ฌธ์์ ๋งคํ๋๋ ์ด๋ฆฌ๋ ๊ดํธ๋ฅผ ๋น๊ตํ๋ค.
- ๋ชจ๋ ๋ฌธ์์ด์ ๋น๊ต ํ ์คํ์ด ๋น์ด์์ง์์ผ๋ฉด ๊ดํธ์ ์์ ์๊ฐ ๋ง์ง ์์ผ๋ฏ๋ก false๋ฅผ ๋ฆฌํดํ๋ค.
JS CODE โ
javascript
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
let stack = []
const mapping = {
')':'(',
'}':'{',
']':'['
}
for(const c of s) {
if (/[\(\[\{]/.test(c)) stack.push(c)
else if (stack.pop() !== mapping[c]) return false
}
return stack.length === 0
};