mirror of
				https://github.com/theoludwig/programming-challenges.git
				synced 2025-09-11 23:11:21 +02:00 
			
		
		
		
	feat(solutions): add valid-parentheses/javascript/function
				
					
				
			This commit is contained in:
		| @@ -0,0 +1,3 @@ | ||||
| # valid-parentheses/javascript/function | ||||
|  | ||||
| Created by [@theoludwig](https://github.com/theoludwig) on 18 November 2024. | ||||
| @@ -0,0 +1,3 @@ | ||||
| { | ||||
|   "type": "module" | ||||
| } | ||||
| @@ -0,0 +1,42 @@ | ||||
| import readline from "node:readline" | ||||
|  | ||||
| const input = [] | ||||
| const readlineInterface = readline.createInterface({ | ||||
|   input: process.stdin, | ||||
|   output: process.stdout, | ||||
| }) | ||||
| readlineInterface.on("line", (value) => { | ||||
|   input.push(value) | ||||
| }) | ||||
| readlineInterface.on("close", solution) | ||||
|  | ||||
| function solution() { | ||||
|   console.log(isValidParentheses(input[0])) | ||||
| } | ||||
|  | ||||
| const mapCloseOpen = { | ||||
|   ")": "(", | ||||
|   "]": "[", | ||||
|   "}": "{", | ||||
| } | ||||
| const closeCharacters = Object.keys(mapCloseOpen) | ||||
| const openCharacters = Object.values(mapCloseOpen) | ||||
|  | ||||
| /** | ||||
|  * @param {string} string | ||||
|  * @return {boolean} | ||||
|  */ | ||||
| const isValidParentheses = (string) => { | ||||
|   const stack = [] | ||||
|   for (let index = 0; index < string.length; index++) { | ||||
|     if (openCharacters.includes(string[index])) { | ||||
|       stack.push(string[index]) | ||||
|     } else if (closeCharacters.includes(string[index])) { | ||||
|       const last = stack.pop() | ||||
|       if (last !== mapCloseOpen[string[index]]) { | ||||
|         return false | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   return stack.length <= 0 | ||||
| } | ||||
		Reference in New Issue
	
	Block a user