给定一个只含有{、}、[、]、(、)的字符串,判断此字符串是否为有效的。若左边的{、[、(符号正好能找到右边对称的符号并形成闭合,则表示字符串是有
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> /** * * 给定一个只含有{、}、[、]、(、)的字符串,判断此字符串是否为有效的。 * 若左边的{、[、(符号正好能找到右边对称的符号并形成闭合,则表示字符串是有效的 * * */ function isValid(s) { const stack = []; for (let i = 0; i < s.length; i++) { const start = s[i]; // 左边的进栈 if (start === "(" || start === "{" || start === "[") { stack.push(start) } else { // 右边的判断能否在栈内找到匹配 const end = stack[stack.length - 1]; if (end === "(" && start === ")" || end === "[" && start === "]" || end === "{" && start === "}") { stack.pop() }else{ return false } } } return stack.length === 0 } console.log(isValid("()")); console.log(isValid("{[]}")); console.log(isValid("(1[}")); console.log(isValid("(}")); </script> </body> </html>
效的
栈算法题-有效括号
最新推荐文章于 2024-07-30 10:56:44 发布