编程题——合法括号序列


题目描述:
对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。

给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。

示例1:
输入
(()())
6
输出
true

示例2:
输入
()a()()
7
输出
false

示例3:
输入
()(()()
7
输出
false


程序代码如下:


#include <iostream>
#include <string>
#include <stack>
using namespace std;/*这道题目比较简单,要求输入只能是括号且括号匹配,我们用栈就可以轻松解决*遍历字符串,当遇到'('时压入栈中*遇到')'时判断栈是否为空及栈顶元素是否为(*    如果栈为空或栈顶不为'('说明没有与左括号匹配的右括号,return false;*  否则,将栈顶'('出栈*其他字符返回false*遍历结束后判断栈是否为空*  栈为空,说明括号匹配,return true;*  栈不为空,说明括号不匹配,左括号多,return false;*/
class Parenthesis {public:bool chkParenthesis(string A, int n) {stack<char> s;for (int i = 0; i < n; ++i){if ('(' == A[i])s.push(A[i]);else if (')' == A[i]){if (s.empty() || '(' != s.top())return false;elses.pop();}elsereturn false;}if (s.empty())return true;elsereturn false;}
};int main()
{Parenthesis p;string s;int N;getline(cin, s);cin >> N;if (p.chkParenthesis(s,N))cout << "true" << endl;elsecout << "false" << endl;return 0;
}

程序运行结果如下:




编程题——合法括号序列相关推荐

  1. 2016百度实习编程题:括号序列

    不知如何解决 1.感觉贪心或者动态规划,不知道如何解决 2.做过生成合法括号序列的题目,想到用DFS补成合法的括号,然而没有成功

  2. 刷题日记【第四篇】-笔试必刷题【Fibonacci数列+合法括号序列判断+两种排序方法+求最小公倍数】

    目录 选择题模块 1. 以下对继承的描述错误的是(A) 2. 在Java中,一个类(B) 3. 以下不是Object 类的方法的是(D) 4. Test.main() 函数执行后的输出是(D) 编程题 ...

  3. 【字符串2】(删除公共字符、合法括号序列判断、两种排序方法、密码强度等级)

    字符串题集 1. 删除公共字符 题目描述 题目分析 C++代码 2. 合法括号序列判断 题目描述 题目分析 C++代码 3. 两种排序方法 题目描述 题目分析 C++代码 4. 密码强度等级 题目描述 ...

  4. [Jobdu] 题目1337:寻找最长合法括号序列

    题目描述: 给你一个长度为N的,由'('和')'组成的括号序列,你能找出这个序列中最长的合法括号子序列么?合法括号序列的含义便是,在这个序列中,所有的左括号都有唯一的右括号匹配:所有的右括号都有唯一的 ...

  5. 牛客题霸 [括号序列] C++题解/答案

    牛客题霸 [括号序列] C++题解/答案 题目描述 给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列 括号必须以正确的顺序关闭,&quo ...

  6. 牛客网--关于合法括号序列判断

    牛客网--关于合法括号序列判断 题目描述 代码 题目描述 对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串. 给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串 ...

  7. [ Nowcoder Contest 165 #D ] 合法括号序列

    \(\\\) \(Description\) 键盘上有三个键,敲击效果分别是: 在输出序列尾部添加一个左括号 在输出序列尾部添加一个右括号 删除输出序列尾部的第一个元素,若输出序列为空,则什么都不发生 ...

  8. C语言去括号编程题,去括号 - C语言网

    题目描述 当老师不容易,尤其是当小学的老师更难:现在的小朋友做作业喜欢滥用括号. 虽然不影响计算结果,但不够美观,容易出错,而且可读性差.但又不能一棒子打死,也许他们就是将来的"陈景润&qu ...

  9. 12届蓝桥杯省赛c++b组 J题 括号序列

    这次要讲的前几个星期刚比完的蓝桥杯c++b组J题:括号序列.本次比赛我也参加了,但是这道题我是dfs求解的,所以都只是拿了少部分的分,我比赛时的代码就不展示了,因为时间复杂度很高,所以我就直接讲解正解 ...

最新文章

  1. [Cake] 1. CI中的Cake
  2. 神经网络?决策树?都做不到!谁能解决可解释性AI?
  3. 原创:MD5 32位加密软件
  4. 分解连续自然数的和_小学奥数各年级经典题解题技巧大全——分解因数法(2)...
  5. Python中的Series和DataFrame
  6. mysql 处理一条语句卡死_一条MySQL查询语句,卡死机器,不知道为什么,求高手指点!...
  7. Zoi选项 — Insure抑制功能
  8. Kafka 入门教程之一: 安装
  9. eggjs 项目实践
  10. 微信群越来越多,我该如何科学地管理?
  11. spring 集成MongoDB错误Interrupted acquiring a permit to retrieve an item from the pool
  12. root高级权限怎么弄,怎样拥有root权限
  13. 日常英语精彩短句集锦
  14. 八股文(Spring)
  15. **caffe_vcpkg+vs2017+win7安装整理**
  16. 【C语言】求一个四位整数各位数字之和
  17. oracle一体机的管理界面,Oracle 数据库一体机:zData Light - 分布式存储管理平台
  18. GIS的云计算解决方案
  19. 百度mip推送工具_百度小程序继熊掌号后,百度搜索站长平台的又一脱了裤子放屁闹剧...
  20. 耦合天线测试软件,天线间耦合度自动测试系统设计.PDF

热门文章

  1. 下载RoboWare Studio官网登录不上去
  2. SNIPER—— SNIP的实战版本 (目标检测)(two-stage)(深度学习)(Arvix 2018)
  3. GSM和GPRS网络原理的基本思路
  4. 【技术分享】IS-IS 概述
  5. 浅谈Attention注意力机制及其实现
  6. android谷歌手机刷机教程
  7. mac pro m1:安装dump文件内存分析工具——MAT
  8. Python——爬虫抓取图片
  9. 通过虚拟机模拟linux操作系统
  10. linux图像显示(五)使用freetype处理矢量字体