学渣的刷题之旅 leetcode刷题 20.有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
输入: “()”
输出: 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.有效的括号相关推荐
- 学渣的刷题之旅 leetcode刷题 1.两数之和
给定一个整数数组nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素 ...
- 学渣的刷题之旅 leetcode刷题 21.合并两个有序列表
将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 输入:1->2->4, 1->3->4 输出:1->1->2-> ...
- 学渣的刷题之旅 leetcode刷题 9. 回文数
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 输入: 121 输出: true 输入: -121 输出: false 解释: 从左向右读, 为 -12 ...
- 学渣的刷题之旅 leetcode刷题 83.删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出 ...
- 学渣的刷题之旅 leetcode刷题 53.最大子序和(动态规划,贪心法)
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4, ...
- 学渣的刷题之旅 leetcode刷题 70.爬楼梯(动态规划)
假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 输入: 2 输出: 2 解释: 有两种方法可以爬 ...
- 学渣的刷题之旅 leetcode刷题 100.相同的树
给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 我的c++代码 /*** Definition for a binary tree ...
- 学渣的刷题之旅 leetcode刷题 88. 合并两个有序数组
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 num1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n ...
- 学渣的刷题之旅 leetcode刷题 69.x的平方根(暴力法、二分查找)
实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 输入: ...
- 学渣的刷题之旅 leetcode刷题 67.二进制求和
给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 输入: a = "11", b = "1" 输出: " ...
最新文章
- 习题10-3 递归实现指数函数 (15 分)
- LeetCode hard 84. Largest Rectangle in Histogram--python,java 15行,c++ 15行 解法
- Android 实现TextView后面跟随一个高度和宽度固定的ImageView
- Hibernate的延迟检索和立即检索
- 用RPython在云端运行可扩展数据科学
- 18.28 getchar()函数与缓冲区问题
- 强化学习核心文章一百篇
- MySQL Performance-Schema(二) 理论篇
- MaxCompute 存储设计
- docker update_windows 10 安装docker
- localStorage.getItem得到的是[object Object] 的解决方案
- 思科无线服务器,【CISCO wlan】思科无线网络_3-基本配置v2.pdf
- 深入研究RocketMQ生产者发送消息的底层原理
- 高效办公必备神器-Keychron键盘,值得拥有
- 【ZZULIOJ】郑州轻工业大学oj题解整合
- 阳历日期转阴历工具类
- C#制作自己的打包工具
- Alpine执行bash
- 基于51单片机的鸡舍智能环境控制有害气体检测无线WiFi通信proteus仿真原理图PCB
- kubernetes 入门介绍