在C++中检查有效括号可以使用栈的数据结构来实现。以下是一个基本的算法实现:
以下是一个示例代码:
#include <iostream>
#include <stack>
bool isValidParentheses(const std::string& str) {
std::stack<char> parenthesesStack;
for (char c : str) {
if (c == '(' || c == '{' || c == '[') {
parenthesesStack.push(c);
} else if (c == ')' || c == '}' || c == ']') {
if (parenthesesStack.empty()) {
return false;
}
char top = parenthesesStack.top();
parenthesesStack.pop();
if ((c == ')' && top != '(') ||
(c == '}' && top != '{') ||
(c == ']' && top != '[')) {
return false;
}
}
}
return parenthesesStack.empty();
}
int main() {
std::string str = "((({})))";
bool isValid = isValidParentheses(str);
if (isValid) {
std::cout << "Valid parentheses" << std::endl;
} else {
std::cout << "Invalid parentheses" << std::endl;
}
return 0;
}
这个算法的时间复杂度是 O(n),其中 n 是输入字符串的长度。
腾讯云相关产品和产品介绍链接地址:
请注意,以上只是腾讯云的一些产品示例,其他云计算品牌商也提供类似的产品和服务。
企业创新在线学堂
腾讯技术创作特训营第二季第4期
原引擎 | 场景实战系列
停课不停学 腾讯教育在行动第二期
企业创新在线学堂
云+社区沙龙online [腾讯云中间件]
算法大赛
领取专属 10元无门槛券
手把手带您无忧上云