首页 > 其他分享 >CPP学习 用栈容器解决问题示例,判断括号是否成对出现

CPP学习 用栈容器解决问题示例,判断括号是否成对出现

时间:2024-11-02 12:18:08浏览次数:3  
标签:cout 示例 int 括号 用栈 str CPP mystack include

#include<string>
#include<iostream>
#include<stack>
using namespace std;
bool isbalanced(const string& str)
{
    int len = str.size();
    stack<char> mystack;
    for (int i = 0; i < len; i++)
    {
        if (str[i] == '(' || str[i] == '[' || str[i] == '{' || str[i] == '<')
            mystack.push(str[i]);//将左括号压入栈中
        if (str[i] == ')' || str[i] == ']' || str[i] == '}' || str[i] == '>')
        {
            if (mystack.empty())//如果栈为空,说明没有左括号与右括号匹配,直接返回false
            {
                cout << "The string is not balanced.You have more closing brackets than opening brackets." << endl;
                exit(0);
            }
            switch (str[i])
            {
                case ')':
                {
                    if (mystack.top() != '(')
                        return false;mystack.pop(); break;
                }
                case ']':
                {
                    if (mystack.top() != '[')
                        return false;mystack.pop(); break;
                }
                case '}':
                {
                    if (mystack.top() != '{')
                        return false;mystack.pop(); break;
                }
                case '>':
                {
                    if (mystack.top() != '<')
                        return false;mystack.pop(); break;
                }
            }
        }
    }
    if (mystack.empty())//N.empty()返回的是一个bool值
        return true;
    else
        return false;
}
int main()
{
    bool bal;string str;
    cin >> str;
    bal = isbalanced(str);//调用函数
    if (bal)
        cout << "The string is balanced." << endl;
    else
        cout << "The string is not balanced." << endl;
    return 0;
}

标签:cout,示例,int,括号,用栈,str,CPP,mystack,include
From: https://blog.csdn.net/ygklwyf/article/details/143448967

相关文章

  • 低功耗4G模组:Air780E发送SMS短消息示例
    大家好,今天一起来学习使用合宙低功耗4G模组Air780E发送SMS短消息:一、SMS简介SMS(短消息服务,ShortMessageService)功能主要用于在蜂窝网络中传输短消息。移动,联通卡不需开通VOLTE可以支持短信功能。在4G网络中,短信可以在数据传输的同时进行,不会因数据业务占用网络资源而被延迟或阻塞。......
  • 【Java Web】使用JDBC操作数据库(含代码示例)
    文章目录JDBC主要组成部分访问数据库步骤数据库交互StatementPreparedStatementSQL注入攻击演示示例单查询多查询返回记录数JDBC(JavaDatabaseConnectivity)是Java中用于执行SQL语句的标准API,它提供了一种统一的方式来访问各种关系型数据库。JDBC使得开发者能够以......
  • 用栈实现队列
    用栈实现队列题目链接:LeetCode232描述请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现MyQueue类:voidpush(intx)将元素x推到队列的末尾intpop()从队列的开头移除并返回元素intpeek()返回队列开头的元素boole......
  • i2c与从设备通讯编程示例之i2c编写程序
    对于我们ELF 1板卡来说,我们前面看到的i2c-0、i2c-1总线对应着CPU的两个i2c适配器,作为主设备,而总线上挂载的设备作为从设备。如/dev/i2c-1对应的适配器作主设备,其上面挂载的光线传感器就作为从设备。前面我们了解了i2c的通讯协议,也初步用i2c-tools尝试着读写了一个从设备寄存......
  • CPP异常处理之noexcept函数类型
    ExceptionspecificationsandnoexceptinCPPLookingatatypicalfunctiondeclaration,itisnotpossibletodeterminewhetherafunctionmightthrowanexceptionornot:intdoSomething();//canthisfunctionthrowanexceptionornot?Intheaboveex......
  • nltest 是一个 Windows 命令行工具,用于测试和管理 Windows 域的信任和连接状态。以下
    Nltest|MicrosoftLearnnltest是一个Windows命令行工具,用于测试和管理Windows域的信任和连接状态。以下是一些常用的nltest命令示例:1.查询域信任关系bashCopyCodenltest/domain_trusts该命令显示当前计算机与其域和其他信任域之间的信任关系。2.验证域控制器b......
  • 自动化滑动极验v3示例
    importrandomimportddddocrfromplaywright.sync_apiimportsync_playwrightimporttimeimportrequestswithsync_playwright()asp:det=ddddocr.DdddOcr(det=False,ocr=False)browser=p.chromium.launch(headless=False,args=['-......
  • 如何用pbootcmsAPI接口开发微信小程序UNIAPP示例
    1.准备工作在开始开发小程序之前,你需要:搭建好PbootCMS环境,确保其正常运行。注册小程序并获取AppID和AppSecret。配置PbootCMS与小程序的接口。2.封装API//获取站点信息exportconstpostSite=(config={})=>http.post('/cms/site',config)//获取自定义标签ex......
  • uniapp - 详细实现移动端公众号 H5 网页授权登录流程及示例代码,申请测试公众号全流程
    前言Vue版本,请访问这篇文章。在uni-appH5网站平台开发中,详解微信公众号网页接入微信授权登录示例代码,附带申请测试公众号全流程及配置教程,提供前端h5页面公众号网页实现授权登陆并获取用户昵称头像数据的示例源码,用自己项目跑出来的本地局域网IP段就可以拉起公众......
  • BitNet.cpp:革新性的1比特LLM推理框架,让CPU也能驾驭百亿参数大模型!
    ......