From 2bc42e617209a61311ce8264d49345b874f405da Mon Sep 17 00:00:00 2001 From: Cyjin-jani Date: Wed, 8 Apr 2026 23:43:48 +0900 Subject: [PATCH] add: validParentheses solution --- valid-parentheses/Cyjin-jani.js | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 valid-parentheses/Cyjin-jani.js diff --git a/valid-parentheses/Cyjin-jani.js b/valid-parentheses/Cyjin-jani.js new file mode 100644 index 0000000000..d522b58364 --- /dev/null +++ b/valid-parentheses/Cyjin-jani.js @@ -0,0 +1,34 @@ +// tc: O(n) +// sc: O(n) +const isValid = function (s) { + const bracketMap = { + '(': ')', + '{': '}', + '[': ']', + }; + + if (s.length % 2 !== 0 || isCloseBracket(s[0])) return false; + + const stack = []; + + for (let i = 0; i < s.length; i++) { + if (stack.length === 0) { + stack.push(s[i]); + continue; + } + + let topBracket = stack.pop(); + if (bracketMap[topBracket] !== s[i]) { + stack.push(topBracket); + stack.push(s[i]); + } + } + + return stack.length === 0; +}; + +function isCloseBracket(char) { + const closeBrackets = [')', '}', ']']; + + return closeBrackets.includes(char); +}