在JavaScript中,可以使用栈数据结构来实现括号匹配的检验算法。以下是一种基本的算法:
1. 创建一个空栈来存储左括号。
2. 遍历输入的字符串,逐个检查字符:
- 如果是左括号('(','{','['),将其压入栈中。
- 如果是右括号(')','}',']'),检查栈顶元素是否与当前括号匹配:
- 如果栈为空或栈顶元素不匹配当前括号,则括号不匹配,返回 false。
- 如果栈顶元素匹配当前括号,则从栈中弹出栈顶元素,继续遍历下一个字符。
3. 遍历结束后,如果栈为空,则所有括号都匹配,返回 true;否则,括号不匹配,返回 false。
下面是使用JavaScript代码实现该算法的示例:
```javascript
function isParenthesesMatching(str) {
const stack = [];
for (let i = 0; i < str.length; i++) {
const char = str[i];
if (char === '(' || char === '{' || char === '[') {
stack.push(char);
} else if (char === ')' || char === '}' || char === ']') {
if (stack.length === 0) {
return false;
}
const top = stack.pop();
if (
(char === ')' && top !== '(') ||
(char === '}' && top !== '{') ||
(char === ']' && top !== '[')
) {
return false;
}
}
}
return stack.length === 0;
}
// 示例使用:
const str1 = '({})'; // 括号匹配,返回 true
const str2 = '{[()]}' // 括号匹配,返回 true
const str3 = '({})['; // 括号不匹配,返回 false
console.log(isParenthesesMatching(str1)); // true
console.log(isParenthesesMatching(str2)); // true
console.log(isParenthesesMatching(str3)); // false正则匹配括号里的内容
```
使用这个算法,你可以检验一个字符串中的括号是否匹配。注意,该算法仅适用于括号的匹配,对于其他符号的匹配需要相应地进行修改。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论