给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则: 任何左括号 ( 必须有相应的右括号 )。 任何右括号 ) 必须有相应的左括号 ( 。 左括号 ( 必须在对应的右括号之前 )。 * 可以被视为单个右括号 ) ,或单个左括号 ( ,或一个空字符串。 一个空字符串也被视为有效字符串。-笔试面试资料

这是qklbishe.com第7463 篇笔试面试资料
提供答案分析,通过本文《给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则: 任何左括号 ( 必须有相应的右括号 )。 任何右括号 ) 必须有相应的左括号 ( 。 左括号 ( 必须在对应的右括号之前 )。 * 可以被视为单个右括号 ) ,或单个左括号 ( ,或一个空字符串。 一个空字符串也被视为有效字符串。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:
  1. 任何左括号 ( 必须有相应的右括号 )。
  2. 任何右括号 ) 必须有相应的左括号 ( 。
  3. 左括号 ( 必须在对应的右括号之前 )。
  4. * 可以被视为单个右括号 ) ,或单个左括号 ( ,或一个空字符串。
  5. 一个空字符串也被视为有效字符串。

JavaScript

给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:                任何左括号 ( 必须有相应的右括号 )。             任何右括号 ) 必须有相应的左括号 ( 。             左括号 ( 必须在对应的右括号之前 )。             * 可以被视为单个右括号 ) ,或单个左括号 ( ,或一个空字符串。             一个空字符串也被视为有效字符串。 _______struggle゛

function checkValidString( s ) {     const arrStack = []     for (let i = 0; i < s.length; i++) {         let anyVal = s[i]         if (anyVal === "*") arrStack.push("*")         if (anyVal === "(") arrStack.push("(")         if (anyVal === ")") {             if (arrStack.length === 0) return false             let numStarIndex = -1             for (let j = arrStack.length - 1; j > -1; j--) {                 if (arrStack[j] === "(") {                     arrStack.splice(j, 1)                     break                 }                 if (arrStack[j] === "*" && numStarIndex === -1) numStarIndex = j             }             if (numStarIndex !== -1) arrStack.splice(numStarIndex, 1)         }     }     let numTmp = Math.floor(arrStack.length / 2)     for (let i = 0; i < numTmp; i++) {         let anyLeft = arrStack[i]         let anyRight = arrStack[arrStack.length - i - 1]         if (anyLeft === "(" && anyRight === "*") {             arrStack[i] = "*"         }         if (anyLeft === "*" && anyRight !== ")") {             arrStack[arrStack.length - i - 1] = "*"         }     }     if (arrStack.length !== 0) {         return !(arrStack.indexOf("(") !== -1 || arrStack.indexOf(")") !== -1);     }     return true }

今天 12:02:39 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则: 任何左括号 ( 必须有相应的右括号 )。 任何右括号 ) 必须有相应的左括号 ( 。 左括号 ( 必须在对应的右括号之前 )。 * 可以被视为单个右括号 ) ,或单个左括号 ( ,或一个空字符串。 一个空字符串也被视为有效字符串。-笔试面试资料

提供最优质的资源集合

立即查看 了解详情