/**

 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

 *

 * 

 * @param s string字符串 

 * @return bool布尔型

 */

function isValidStrings ) {

    // write code here

        let lc = 0;

        let sc = 0;

        let rc = 0;

        for(let i = 0i < s.lengthi++) {            // 从左往右遍历计数三个字符出现次数

            if(s[i] === '(') {

                lc++

            } else if(s[i] === ')') {

                rc++;

            }

            else {

                sc++

            };

            if(lc + sc < rcreturn false;             // 只要过程中出现右括号比左括号+星号多则返回false

        }

        lc = sc = rc = 0;

        for(let j = s.length - 1j >= 0j--) {       // 从右往左遍历计数三个字符出现次数

            if(s[j] === ')') {

                rc++;

            } 

            else if(s[j] == '(') {

                lc++;

            }

            else {

                sc++;

            };

            if(rc + sc < lcreturn false;             // 只要过程中出现左括号比右括号+星号多则返回false

        }

         

        return true;

}

module.exports = {

    isValidString : isValidString

};