关于括号的一系列问题

这篇具有很好参考价值的文章主要介绍了关于括号的一系列问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

对于只出现一种括号的字符串,看这个字符串中的括号是否匹配 以及 匹配的个数:

一般来说有两种匹配方式:

例如: (()()())

第一种匹配是此字符串有4组括号对匹配完成

第二种匹配是此字符串有3组括号对匹配完成

对于第一种匹配方式:有两种选择:栈或者直接循环:

但是,显然,我觉得没必要使用栈,大材小用

#include<iostream>
#include<cstdio>

using namespace std;

int main()
{
    string ss="(()())";
    int num=0;
    cout<<ss<<endl;
    
    for(int i=0;i<ss.size();i++)
    {
        if(ss[i]=='(')  num++;
        if(ss[i]==')')  num--;
        if(num<0)   break;
    }
    if(num==0)  cout<<"true"<<endl;  //可能剩余左括号没有被匹配上 (() 也要考虑到
    else        cout<<"false"<<endl;
    
}

第二种:栈

bool judge(string ss)
    {
        stack<char>sta;
        for(int i=0;i<ss.size();i++)
        {
            if(ss[i]=='(')  sta.push('(');
            else
            {
                if(sta.size()>0 && sta.top()=='(')  sta.pop();
                else
                {
                    sta.push(')');
                    break;
                }
            }
        }
        if(!sta.size())     return true;
        else                return false;
    }

对于第二种括号匹配的方式:就很简单了:

观察发现:必须得是左右两个括号紧密挨在一起,那就直接for循环判定 

#include<iostream>
#include<cstdio>

using namespace std;

int main()
{
    string ss="(()())()(())";
    int num=0;
    
    for(int i=1;i<ss.size();i++)
    {
        if(ss[i]==')' && ss[i-1]=='(')  num++;
    }
    cout<<num<<endl;
    
}

对于不同类型的括号,如何匹配,匹配的个数:(力扣 20 有效的括号)

20. 有效的括号 - 力扣(LeetCode)文章来源地址https://www.toymoban.com/news/detail-502532.html

class Solution {
public:
    bool isValid(string s) {
        stack<char>sta;
        for(int i=0;i<s.size();i++)
        {
            if(sta.size()>0)
            {
                if(s[i]==']' && sta.top()=='[' ||
                   s[i]==')' && sta.top()=='(' ||
                   s[i]=='}' && sta.top()=='{'     )
                   sta.pop();
                else
                    sta.push(s[i]);
            }
            else
                sta.push(s[i]);
        }
        if(!sta.size())  return true;
        else             return false;
    }
};

到了这里,关于关于括号的一系列问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于 ue unreal 虚幻 在编辑器editor未运行情况下 部分材质出现模糊 看不清的问题 的另外一种解决方案猜想

    这里引用两个帖子 Quixel导入资产到UE5后,材质贴图一片模糊的问题该如何解决? - 知乎 干货分享 || UE4场景内模型模糊的解决办法 - 知乎 以上两种是纹理流 texture streaming 导致的问题 结果借个图  眼看这糊的这种问题 下面说一下另外一种情况猜想 情况是这样 因为最近有看看

    2024年02月07日
    浏览(54)
  • Vue 出现Syntax Error:TypeError: Cannot read property ‘vue‘ of undefined的一种解决办法

    出现如下情况 背景:首次克隆运行项目 技术背景:项目使用的前端框架和UI框架 :vue2+element-ui 然后npm install 安装依赖,得到node_modules包和package-lock.json文件,然后npm run dev启动报错。 排查原因: 首先看了package.json 文件的node版本和npm版本支持 当前的我的node和npm版本用的是:

    2024年02月13日
    浏览(43)
  • 解决git clone或者pip install git+https://github.com/ruotianluo/meshed-memory-transformer.git出现的一系列问题

    出现的错误: 问题1. fatal: unable to access \\\'https://github.com/ruotianluo/meshed-memory-transformer.git/\\\': Failed to connect to github.com port 443 after 21020 ms: Timed out   error: unable to read sha1 file of m2transformer/data/example.py (d46c07fc2bb636146922425a46fbcbb2443407cf) 问题2. Collecting git+https://github.com/ruotianluo/meshed-memor

    2024年02月05日
    浏览(47)
  • 关于Surface系列重装系统的操作方法,出现的问题并给出了解决办法。

     我去年在微软官网淘到了一个surface go的平板电脑,由于我把Windows系统从Win10更新到了Win11,导致系统很卡顿(不是更新的Win11的原因,我猜测可能是平板电脑的自身版本有关,处理器性能太低了,带不动),所以我试着去还原系统,在还原的过程中,遇到了一些问题,现记

    2024年02月08日
    浏览(36)
  • 关于nmap -O扫描中出现索尼手机的一份调研

    上次做网络安全实验的时候发现nmap扫描操作系统的结果中出现了索尼爱立信u8i手机,大为震惊,写在了实验报告中。老师看到之后建议我继续钻研一下,找出原因,于是今天空下来了,花了一点时间进行分析。 这是上周的结果 我先去金山云官网询问了客服,确认了他们使用

    2024年02月17日
    浏览(39)
  • 解决内网拉取企微会话存档代理问题的一种办法

    问题 :客户的服务都是内网的,不能直接访问外网;访问外网的话需要走kong网关才能出去。 会话存档官网说可以使用 socket5 、 http 方式拉取会话存档;我这边尝试了直接使用 kong 网关的 ip 和端口配置进去,是访问不了的 我后面就又尝试了使用 nginx 、 squid 做正向代理的方式

    2024年02月07日
    浏览(46)
  • MySQL数据库关于表的一系列操作

    varchar 动态字符串类型(最长255位),可以根据实际长度来动态分配空间,例如:varchar(100) char 定长字符串(最长255位),存储空间是固定的,例如:char(10) int 整数型(最长11位) long 长整型 float 单精度 double 双精度 date 短日期,只包括年月日 datetime 长日期,包括年月日时分

    2024年02月15日
    浏览(43)
  • 关于Microsoft Visual Studio 2017 找不到或打不开 Visual Studio Installer 的解决方法, 或不知名原因导致VS installer闪退的一种方法

    Error Information AppInsightsEvent Name = vs/setup/bootstrapper/error Description = DirectoryNotFoundException TelemetrySession = ‘53295939-9be5-4f6b-a7eb-b42a3dbf1c8a’ Started = True OptIn=True IsInitialized = False Cloned = False WatsonEventType = VisualStudioNonFatalErrors2 UTC time = 2022-01-03T03:51:59 Exception: System.IO.DirectoryNotFoundException

    2024年02月04日
    浏览(88)
  • 华为Pura 70系列,一种关于世界之美的可能

    1874年,莫奈创作了《印象·日出》的油画,在艺术界掀起了一场革命。当时的主流艺术,是追求细节写实,追求场面宏大的学院派。他们称莫奈等人是“印象派”,认为莫奈的画追求光影表达,追求描绘抽象的意境,与主流格格不入。 但是,“印象派”很快得到了大众的喜爱

    2024年04月22日
    浏览(50)
  • Elastic认证含金量高吗?关于Elastic认证考试的一系列解惑

    不到半年时间,我已经带领了社区近百位“勇士”通过了 Elastic认证考试 。几乎每周都有至少 2 ~ 3 位勇士拿到 Elastic认证工程师 的认证证书。每一位的证书都可在社区星球查看。这一张张的证书,表面上是一股荣耀。背后却充满了各种各样的感人故事和辛酸历程。 半年的时

    2024年02月04日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包