📅  最后修改于: 2023-12-03 15:04:08.857000             🧑  作者: Mango
在编程中,经常需要处理字符串中的括号匹配问题。为了计算出给定字符串中的有效括号的总数,我们可以使用Python中的栈(Stack)数据结构。
判断括号是否匹配是典型的栈应用场景。我们可以通过扫描字符串,遇到左括号则将其压入栈中,遇到右括号时,如果栈顶元素是相应的左括号,说明括号匹配成功,此时可以将栈顶元素弹出并增加计数器。最后,有效括号的总数为计数器的值。
function calculateValidParenthesesCount(str: string): number {
let stack: string[] = [];
let count: number = 0;
for (let i = 0; i < str.length; i++) {
let currentChar = str[i];
if (currentChar === '(') {
stack.push(currentChar);
} else if (currentChar === ')' && stack.length > 0 && stack[stack.length - 1] === '(') {
stack.pop();
count++;
}
}
return count;
}
const str: string = '((())())';
const validParenthesesCount: number = calculateValidParenthesesCount(str);
console.log(validParenthesesCount); // 输出 6
以上程序使用栈来计算给定字符串中的有效括号数。在示例中,输入字符串 ((())())
中共有6个有效括号。
希望以上信息对您有帮助!