`
deejay
  • 浏览: 144954 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

检查公式括号配对

 
阅读更多
a)满足在字符串的任何位置处,其左边的左括号数不小于右括号数;b) 字符串中所有的左右括号数相等。

  因此,可以采用栈的思想来匹配:遇到左括号入栈,遇到右括号出栈,直到栈为空,或字符串结束停止;字符串扫描结束时,栈也同时为空,则说明匹配。js如下:


function checkBracket(algorithms){    

       var bracket = [];
       var algorithms= algorithms ||'';
       for(var i=0; i<algorithms.length; i++){
        if(algorithms.charAt(i)=="("){
         bracket.push('(');
        }
        if(algorithms.charAt(i)==")"){
         if(bracket.length){
          bracket.pop();
         }else{
          alert('公式括号不配对,缺少左括号!')
          return false;
         }
        }
       }
       if(bracket.length){
        alert('公式括号不配对,缺少右括号!')
        return false;
       }

       return true;

}
0
0
分享到:
评论
4 楼 deejay 2012-07-04  
feisuzhu 写道
这个……简单的检查一下括号的数量不行么??假设输入是有效的话。

考虑这种情况:)a+b(,左括号数量和右括号数据 相等。
所以单纯判断数量不行。
3 楼 deejay 2012-07-04  
yuhui0531 写道
有一个问题,如果多了个右括号怎么办?

多一个右括号时,bracket.length>0, 返回FALSE.
if(bracket.length){  
  alert('公式括号不配对,缺少右括号!')  
  return false;  
}  
2 楼 feisuzhu 2011-12-27  
这个……简单的检查一下括号的数量不行么??假设输入是有效的话。
1 楼 yuhui0531 2011-12-27  
有一个问题,如果多了个右括号怎么办?

相关推荐

    设计算法判断一个算术表达式的圆括号是否配对

    - 检查栈是否为空,如果为空则说明没有与之匹配的左括号,返回“未配对”。 - 从栈顶弹出一个元素,表示找到了一对匹配的括号。 3. **完成遍历后**: - 如果栈为空,则说明所有括号都已正确配对。 - 如果栈不为...

    圆括号匹配.zip

    这个问题的基本任务是检查给定的字符串中是否存在有效的括号配对,例如:`( )`、`[ ]`、`{ }`。在计算机科学中,这种问题通常与递归、栈数据结构或者动态规划等技术相关。 描述中提到的".zip"文件格式是一种常见的...

    栈的应用——括号的匹配

    总结来说,栈在括号匹配中的应用体现了其“后进先出”的特性,有效地解决了编程语言中括号配对的问题,确保了代码的正确性。通过C语言实现的简单示例,我们可以直观地了解这一过程。在实际的编程实践中,栈被广泛...

    c.zip_括号匹配

    括号匹配问题源于对表达式的正确性检查,例如数学公式或编程语言中的控制结构。一个有效的括号序列应该满足以下条件:每个左括号(如'('、'{'、'[')都有相应的右括号(')'、'}'、']')与其配对,并且所有括号成对...

    括号匹配算法括号匹配算法

    括号匹配问题通常涉及到检查一个字符串中的开括号(如"(", "[", "{")和相应的闭括号(")", "]", "}")是否正确配对。这种算法对于理解代码的结构和确保程序的正确性至关重要。 首先,我们来详细解释一下括号匹配的...

    括号匹配和链表合并mfc

    遇到右括号时,检查栈顶的元素是否是对应的左括号,如果是则弹出栈顶元素,否则表示括号不匹配。这个过程可以用递归或迭代的方式来实现。在MFC中,可以使用`CStack`类来辅助完成括号匹配的实现。 其次,链表合并...

    命题公式合法性的判定

    1. **括号匹配**:所有括号都应正确配对且闭合。 2. **运算符与操作数的搭配**:逻辑运算符前后必须有合法的操作数(命题变元或者其他命题公式)。 3. **否定运算的位置**:否定运算符只能出现在命题变元或者另一个...

    数学公式解析控件

    在这个过程中,控件会检查公式的语法结构是否正确,确保它符合数学语法规则。如果公式是正确的,控件会进一步对其进行计算,得出预期的结果。 数学公式解析控件的核心功能包括: 1. **语法检查**:控件会基于数学...

    boost regex 检测 数学公式

    这个模式会匹配一个包含数字、运算符和可能的小数点的公式,但不包括指数或括号。 然而,要处理更复杂的公式,如含有括号、负数和指数的公式,正则表达式就会变得相当复杂。这通常需要递归正则表达式或编写自定义...

    PB按公式自动计算问题

    当公式计算出现问题时,首先检查公式语法是否正确,确保所有括号匹配,变量已正确声明,函数调用格式无误。其次,检查引用的数据源是否正确,数据类型是否匹配。最后,查看日志或调试信息,定位错误发生的具体位置。...

    计算命题演算公式的真值课程设计报告

    - 通过`ExplsCorrect`函数检查输入表达式的括号匹配正确性。 - `Convert`函数实现中缀表达式到后缀表达式的转换。 - `BuildTree`函数根据后缀表达式构造二叉树。 - `print`函数逆时针打印二叉树,便于理解和验证。 -...

    Word2021插入数学公式的方法.docx

    你可以滚动浏览文档,检查公式的外观是否符合预期。如果需要进一步调整,只需重新选中公式并进行修改即可。 #### 四、高级技巧 - **自定义样式**:在“设计”选项卡中,还可以通过“样式”组来自定义公式的外观,...

    Excel大括号{}数据的使用.docx

    这个数组公式的工作原理是遍历A2到A7的每个单元格,检查是否等于“三七”。如果是,它就计算对应的B列和C列乘积;如果不是,就返回0。最后,所有非零的乘积相加得到总和。 总结来说,Excel中的大括号`{}`是数组公式...

    heshigongshi.rar_heshigongshi_合式公式

    这样的程序通常会采用递归的方式,从最简单的原子公式(不含逻辑联接词和量词的公式)开始,逐步分析公式结构,确保所有括号匹配,量词正确封闭,并且逻辑运算符的优先级得到遵循。 合式公式判断的实现可能包括以下...

    一个简单的命题公式语法分析器

    7. 错误处理:当输入的字符串不满足命题公式的语法规则时,例如缺少操作符、括号不匹配等,解析函数应该抛出异常或者返回错误代码。 8. 构建抽象语法树(AST):解析完成后,整个输入字符串将被转化为一个表示命题...

    CrystalReport错误消息和公式编译器警告

    - 仔细检查公式中的每一部分,确保所有括号都已正确闭合。 - 使用公式检查工具辅助排查问题。 ##### 5. 函数使用不当 **问题描述**:如果使用了未定义的函数或函数参数类型不匹配,会出现此类错误。 **解决方法**...

    判断表达式是否是公式

    - **括号匹配**:确保所有打开的括号都有对应的关闭括号,并且它们之间没有不匹配的其他字符。 4. **递归验证**:对AST进行深度优先搜索,递归地验证每个子表达式的结构。如果所有的子表达式都符合公式的规则,...

    Excel 2010电子表格_公式和函数_认识Excel中的运算符.pdf

    在Excel 2010中,公式和函数的运用是数据分析和处理的...如果公式中出现括号不匹配的情况,Excel会提示错误并可能提出修正建议。理解并正确使用运算符和括号是编写有效Excel公式的基石,对于提高数据处理效率至关重要。

    PowerBuilder中采用动态SQL实现公式处理.pdf

    1. 公式校验:检查公式的合理性,如括号匹配、运算符顺序和非法字符。这可以通过替换公式中的变量为默认值,构建一个完整的动态SQL更新语句,然后执行以检查其是否有效。如果SQL执行时返回错误码,则表明公式校验...

    公式分析器(包括例子)

    当用户输入的公式有误时,如括号不匹配或未知函数,解析器会抛出错误信息,帮助用户及时发现并修正问题。 接下来,我们来看看“源码”这一标签。这意味着该资源可能包含了实现这种功能的编程代码,可能是用C++、...

Global site tag (gtag.js) - Google Analytics