/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return bool布尔型
*/
function isValidString( s ) {
// write code here
let lc = 0;
let sc = 0;
let rc = 0;
for(let i = 0; i < s.length; i++) { // 从左往右遍历计数三个字符出现次数
if(s[i] === '(') {
lc++
} else if(s[i] === ')') {
rc++;
}
else {
sc++
};
if(lc + sc < rc) return false; // 只要过程中出现右括号比左括号+星号多则返回false
}
lc = sc = rc = 0;
for(let j = s.length - 1; j >= 0; j--) { // 从右往左遍历计数三个字符出现次数
if(s[j] === ')') {
rc++;
}
else if(s[j] == '(') {
lc++;
}
else {
sc++;
};
if(rc + sc < lc) return false; // 只要过程中出现左括号比右括号+星号多则返回false
}
return true;
}
module.exports = {
isValidString : isValidString
};