首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

检查c++中的有效括号

在C++中检查有效括号可以使用栈的数据结构来实现。以下是一个基本的算法实现:

  1. 创建一个空栈。
  2. 遍历输入的字符串。
  3. 如果遇到开括号('(','{','['),将其压入栈中。
  4. 如果遇到闭括号(')','}',']'),检查栈是否为空。如果为空,说明闭括号没有对应的开括号,返回 false。
  5. 如果栈不为空,弹出栈顶元素并与当前闭括号进行匹配。如果不匹配,返回 false。
  6. 遍历完字符串后,检查栈是否为空。如果不为空,说明有未闭合的开括号,返回 false。
  7. 如果以上条件都满足,返回 true。

以下是一个示例代码:

代码语言:txt
复制
#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 是输入字符串的长度。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):提供弹性计算能力,可根据业务需求灵活调整配置。产品介绍链接
  • 云数据库 MySQL 版:提供稳定可靠的 MySQL 数据库服务。产品介绍链接
  • 云函数(SCF):无服务器函数计算服务,支持多种编程语言。产品介绍链接
  • 对象存储(COS):提供安全、稳定、低成本的云端存储服务。产品介绍链接
  • 人工智能平台(AI Lab):提供丰富的人工智能开发工具和服务。产品介绍链接
  • 物联网通信(IoT Hub):提供稳定可靠的物联网设备连接和数据传输服务。产品介绍链接
  • 区块链服务(BCS):提供一站式区块链解决方案,帮助企业快速搭建区块链应用。产品介绍链接
  • 腾讯会议:提供高清流畅的音视频会议服务。产品介绍链接
  • 腾讯云直播(CSS):提供全球覆盖的低延迟、高并发的直播服务。产品介绍链接
  • 腾讯云音视频处理(VOD):提供音视频上传、转码、剪辑、播放等服务。产品介绍链接
  • 腾讯云安全中心(SSC):提供全面的云安全解决方案,保护云上资产安全。产品介绍链接

请注意,以上只是腾讯云的一些产品示例,其他云计算品牌商也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券