佚名通过本文主要向大家介绍了js判断字符串是否相等,java判断字符串相等,判断字符串是否为空,js判断字符串长度,判断字符串是否为数字等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:如何判断字符串中括号都对应了,没有单个出现?
描述:
解决方案1:
描述:
validBraces( "(){}[]" ) => returns true
validBraces( "(}" ) => returns false
validBraces( "[(])" ) => returns false
validBraces( "([{}])" ) => returns true
解决方案1:
“匹配的括号”是一个上下文无关文法,标准的正则表达式只支持正则文法,不足以描述这个规则(当然有一些扩展的正则表达式引擎支持这一类的功能)
考虑到你的文法没有别的规则,你可以用个简单的办法:
- 创建一个栈
- 从左到右按字符一次扫描整个字符串,每次遇到各种左括号,将其入栈
- 每次遇到各种右括号,检查它是否和栈顶的左括号匹配,如匹配则将栈顶的左括号弹出,如不匹配则报错(括号不匹配),栈为空也报错(右括号多了)
- 扫完整个字符串后,栈应该为空,如不为空则报错(左括号多了)