var expression = "(())()()"
var expressionFalse = "()(()";
isBalanced(expression); // true
isBalanced(expressionFalse); // false
isBalanced(""); // true
数据范围:
进阶:时间复杂度
,空间复杂度%5C)
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;
}