var expression = "(())()()"
var expressionFalse = "()(()";
isBalanced(expression); // true
isBalanced(expressionFalse); // false
isBalanced(""); // true
数据范围:
进阶:时间复杂度,空间复杂度
var expression = "(())()()"
var expressionFalse = "()(()";
isBalanced(expression); // true
isBalanced(expressionFalse); // false
输入为需要判断的变量,如(())()() 或 ()(() 或 ""
输出为布尔值,true或false
()
true
(
false
""
true
const readline = require('readline'); const rl = readline.createInterface({ input:process.stdin, output:process.stdout }) rl.on('line',(input:any)=>{ let opArr = Array.from(input); let waitToClose = 0; while(opArr.length!=0){ let tempOp = opArr.shift(); if(tempOp==='('){ ++waitToClose; } if(tempOp===')'){ --waitToClose; } } console.log((waitToClose === 0)); })
const readline=require('readline'); const rl=readline.createInterface({ input:process.stdin, output:process.stdout }); rl.on('line',line=>{ console.log(isBalanced(line)); }) function isBalanced(str){ str=str||""; str=str.trim(); let left=0; for(let i=0;i<str.length;i++){ if(str[i]==='('){ left++; } if(str[i]===')'){ if(left>0){ left--; }else{ return false; } } } return left===0; }