微信改版,加星标不迷路!

每日一算法-有效的括号

作者:阿广

阅读目录

  • 1 题目

  • 2 解析

1 题目

给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。

有效字符串需满足:

? 左括号必须用相同类型的右括号闭合。

? 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例 1:

输入: "()"输出: true

示例 2:

输入: "()[]{}"输出: true

示例 3:

输入: "(]"输出: false

示例 4:

输入: "([)]"输出: false

示例 5:

输入: "{[]}"输出: true

2 解析


只要遇到括号匹配的问题,我们就选择用栈,遇到左括号就进栈,遇到右括号,就判断栈顶元素是否与之匹配,匹配的话就pop出栈,不匹配的话就返回false。

2.1遇到左括号就进栈

if(x=='(' || x=='{' || x=='[')    store.push(x);

2.2遇到右括号,就判断栈顶元素是否与之匹配,匹配的话就pop出栈,不匹配的话就返回false

else {     if(store.empty() || x==')' && store.top()!='(' || x==']' && store.top()!='[' || x=='}' && store.top()!='{')         return false;     else        store.pop();}

完整代码

class Solution {public:    bool isValid(string s) {        stack<char>store;        for(int x:s){            if(x=='(' || x=='{' || x=='[')    store.push(x);            else {                if(store.empty() || x==')' && store.top()!='(' || x==']' && store.top()!='[' || x=='}' && store.top()!='{')                    return false;                else                    store.pop();            }        }        return store.empty();    }};

今日问题

这一年,你收获了什么?

19年准备完成什么目标?

打卡格式:打卡第n天,答:...

为什么打卡?戳下面你就知道了!

21/天/养/一/个/好/习/惯

【每日一算法】有效的括号相关推荐

  1. 【每日一算法】对称二叉树

    每日一算法-对称二叉树 题目 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1   / \  2   2 / \ / \ 3  4 4  3 但是 ...

  2. 【每日一算法】使用二分法解决x 的平方根问题

    每日一算法-x 的平方根 题目 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: ...

  3. 【每日一算法】二叉树的层次遍历 II

    每日一算法-二叉树的层次遍历 II 题目 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,n ...

  4. 【每日一算法】最大子序列和

    每日一算法-最大子序列和 题目 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] ...

  5. 【每日一算法】杨辉三角 II

    每日一算法-杨辉三角 II 题目 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] ...

  6. 【每日一算法】杨辉三角到底是什么?

    每日一算法-杨辉三角 题目 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5 输出:[     [1], ...

  7. 【每日一算法】二叉树的最小深度

    每日一算法-二叉树的最小深度 题目 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,2 ...

  8. 【每日一算法】合并两个有序数组

    每日一算法-搜索插入位置 题目 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 ...

  9. 【每日一算法】平衡二叉树

    微信改版,加星标不迷路! 每日一算法-搜索插入位置 作者:阿广 阅读目录 ? 题目 ? 解析 ? 完整代码 1 题目 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: ...

最新文章

  1. 什么是人工神经网络?
  2. css(hr元素)水平线的定位
  3. python和java和scala_有没有与python3相当的scala/java收藏。国家
  4. 自己实现一个最简单的数据库
  5. sqlite3admin触发器创建
  6. CTFshow 命令执行 web56
  7. 图像处理中的通信原理——冈萨雷斯读书笔记(一)
  8. java程序员的日常_Java程序员的日常——经验贴(纯干货)
  9. CodeForces 698A - Vacations (Codeforces Round #363 (Div. 2))
  10. 【转】总结oninput、onchange与onpropertychange事件的用法和区别
  11. 脉冲控制仪C语言程序,可编程脉冲控制仪
  12. windows重置net use或者SMB协议
  13. h5 video标签
  14. Php把ts转为mp4,ts格式转换mp4 - 狸窝
  15. laravel 分页 + 分页的样式
  16. 如何解决移动硬盘无法格式化?两招方法教会你
  17. 通过 Dockerfile 搭建标注工具 brat 的镜像
  18. 现代女性的半糖主义ZT
  19. softmax的从零开始实现
  20. android 删除插件,Android手机如何添加删除桌面图标和插件

热门文章

  1. AI 不可以作为专利认证发明人,“因为它不是人”
  2. 从粗放到精细,如何用AI技术实现信息流广告投放的降本增效
  3. Kaggle金牌得主的Python数据挖掘框架,机器学习基本流程都讲清楚了
  4. ​中国开启开源新纪元
  5. 投稿2877篇,EMNLP 2019公布4篇最佳论文
  6. 飞桨博士会第三期来啦!中国深度学习技术俱乐部诚邀您加入
  7. Google最新论文:大规模深度推荐模型的特征嵌入问题有解了!
  8. 喜大普奔!GitHub官方文档推出中文版
  9. 医生再添新助手!深度学习诊断传染病 | 完整代码+实操
  10. ICPC 2019国际大学生程序设计竞赛,中国高校未能夺冠