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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

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

输入: “()”
输出: true

输入: “()[]{}”
输出: true

输入: “(]”
输出: false

输入: “([)]”
输出: false

输入: “{[]}”
输出: true

我的c++代码

class Solution {public:bool isValid(string s) {int size=s.length();if(size%2==1)return false;if(size==0)return true;stack<char> tmp;tmp.push(s[0]);      for(int i=1;i<size;i++){switch(s[i]){case '(':tmp.push('(');break;case '[':tmp.push('[');break;case '{':tmp.push('{');break;case ')':if(tmp.top()=='(')tmp.pop();elsereturn false;break;case ']':if(tmp.top()=='[')tmp.pop();elsereturn false;break;case '}':if(tmp.top()=='{')tmp.pop();elsereturn false;break;}}return tmp.empty();}
};

这道题是典型的栈的应用。
另外还熟悉了一下switch case的使用

学渣的刷题之旅 leetcode刷题 20.有效的括号相关推荐

  1. 学渣的刷题之旅 leetcode刷题 1.两数之和

    给定一个整数数组nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素 ...

  2. 学渣的刷题之旅 leetcode刷题 21.合并两个有序列表

    将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 输入:1->2->4, 1->3->4 输出:1->1->2-> ...

  3. 学渣的刷题之旅 leetcode刷题 9. 回文数

    判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 输入: 121 输出: true 输入: -121 输出: false 解释: 从左向右读, 为 -12 ...

  4. 学渣的刷题之旅 leetcode刷题 83.删除排序链表中的重复元素

    给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出 ...

  5. 学渣的刷题之旅 leetcode刷题 53.最大子序和(动态规划,贪心法)

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4, ...

  6. 学渣的刷题之旅 leetcode刷题 70.爬楼梯(动态规划)

    假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 输入: 2 输出: 2 解释: 有两种方法可以爬 ...

  7. 学渣的刷题之旅 leetcode刷题 100.相同的树

    给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 我的c++代码 /*** Definition for a binary tree ...

  8. 学渣的刷题之旅 leetcode刷题 88. 合并两个有序数组

    给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n ...

  9. 学渣的刷题之旅 leetcode刷题 69.x的平方根(暴力法、二分查找)

    实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 输入: ...

  10. 学渣的刷题之旅 leetcode刷题 67.二进制求和

    给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 输入: a = "11", b = "1" 输出: " ...

最新文章

  1. 习题10-3 递归实现指数函数 (15 分)
  2. LeetCode hard 84. Largest Rectangle in Histogram--python,java 15行,c++ 15行 解法
  3. Android 实现TextView后面跟随一个高度和宽度固定的ImageView
  4. Hibernate的延迟检索和立即检索
  5. 用RPython在云端运行可扩展数据科学
  6. 18.28 getchar()函数与缓冲区问题
  7. 强化学习核心文章一百篇
  8. MySQL Performance-Schema(二) 理论篇
  9. MaxCompute 存储设计
  10. docker update_windows 10 安装docker
  11. localStorage.getItem得到的是[object Object] 的解决方案
  12. 思科无线服务器,【CISCO wlan】思科无线网络_3-基本配置v2.pdf
  13. 深入研究RocketMQ生产者发送消息的底层原理
  14. 高效办公必备神器-Keychron键盘,值得拥有
  15. 【ZZULIOJ】郑州轻工业大学oj题解整合
  16. 阳历日期转阴历工具类
  17. C#制作自己的打包工具
  18. Alpine执行bash
  19. 基于51单片机的鸡舍智能环境控制有害气体检测无线WiFi通信proteus仿真原理图PCB
  20. kubernetes 入门介绍

热门文章

  1. RBP系统管理之系统用户管理
  2. h3c.服务器 装系统,h3c服务器u盘安装linux系统安装
  3. LASSO和LARS
  4. 详解u盘装系统启动不了怎么办
  5. Java PDF数字签名(五)—Java 给PDF签名时添加可信时间戳
  6. ubuntu16.04 安装opencv的viz模块
  7. 5.13.1.3 jmeter组件-非测试元件—HTTP代理服务器--HTTPS证书及其安装
  8. numpy——arry矩阵交换行或者交换列
  9. winxp 关闭445端口
  10. ORACLE错误代码对照表