LeetCode(20):有效的括号
Easy!
题目描述:
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
解题思路:
这道题让我们验证输入的字符串是否为括号字符串,包括大括号,中括号和小括号。这里我们需要用一个栈,我们开始遍历输入字符串,如果当前字符为左半边括号时,则将其压入栈中,如果遇到右半边括号时,若此时栈为空,则直接返回false,如不为空,则取出栈顶元素,若为对应的左半边括号,则继续循环,反之返回false,
C++代码:
 class Solution {
 public:
     bool isValid(string s) {
         stack<char> parentheses;
         for (int i = ; i < s.size(); ++i) {
             if (s[i] == '(' || s[i] == '[' || s[i] == '{') parentheses.push(s[i]);
             else {
                 if (parentheses.empty()) return false;
                 if (s[i] == ')' && parentheses.top() != '(') return false;
                 if (s[i] == ']' && parentheses.top() != '[') return false;
                 if (s[i] == '}' && parentheses.top() != '{') return false;
                 parentheses.pop();
             }
         }
         return parentheses.empty();
     }
 };
LeetCode(20):有效的括号的更多相关文章
- LeetCode 20. 有效的括号(Valid Parentheses)
		20. 有效的括号 20. Valid Parentheses 题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须 ... 
- Java实现 LeetCode 20 有效的括号
		20. 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. ... 
- [LeetCode] 20. 有效的括号 (栈)
		思路: 首先用字典将三对括号存储,遍历字符串中每个字符,遇到左括号就入栈:遇到右括号就开始判断:是否与栈弹出的顶字符相同. 如果到最后栈被清空,说明全部匹配上了,为真. class Solution( ... 
- [LeetCode] 20. 有效的括号
		题目链接:https://leetcode-cn.com/problems/valid-parentheses/ 题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串, ... 
- LeetCode 20.  有效的括号( 括号配对 )
		给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ... 
- Leetcode 20.有效的括号 By Python
		给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ... 
- Leetcode  20   有效的括号valid-parentheses(栈)
		给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ... 
- LeetCode 20. 有效的括号(Valid Parentheses )
		题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字 ... 
- leetcode 20. 有效的括号 (python)
		给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.注意空字符串可被认为是 ... 
- [LeetCode]20.有效的括号(Java)
		原题地址: valid-parentheses 题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类 ... 
随机推荐
- MYSQL 解决中文字符集乱码问题的方法
			修改 /etc/mysql/my.cnf 增加内容 [client] default-character-set = utf8mb4 [mysql] default-character-set = u ... 
- 深入理解Java之线程池(爱奇艺面试)
			爱奇艺的面试官问 (1) 线程池是如何关闭的 (2) 如何确定线程池的数量 一.线程池销毁,停止线程池 ThreadPoolExecutor提供了两个方法,用于线程池的关闭,分别是shutdown() ... 
- Trace 2018徐州赛区网络预赛
			题意: 每次给出一个点,然后就会形成两条线,如果后面的矩形覆盖了前面的边,那么这条边就消失了, 最后求剩下的边是多少 题目确保不会完全覆盖 也没有一个矩形在另一个矩形里面 即对于 X1,Y1 X2, ... 
- clazz.isArray()
			boolean isArray() 判断类型是不是数组 Class clazz = int[].class; System.out.println(clazz.isArray()); 
- MT【108】线面角最小
			评:线面角最小,在此类最值中经常用到,作为选择填空可以投机. 
- BZOJ3738 [Ontak2013]Kapitał  【扩展Lucas】
			题目链接 BZOJ3738 题解 复习 同上 但是为了消去因子\(10\),处理\(2^k\)的时候,乘回\(2^{k_1}\)时,应同时计算\(5^{k_2}\) 如果\(k_1 \ge k_2\) ... 
- ssh框架配置过程
			1.pom.xml配置依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ... 
- 前端学习 -- Css -- display和Visibility
			display 将一个内联元素变成块元素,通过display样式可以修改元素的类型.可选值: 1 inline:可以将一个元素作为内联元素显示. 2 block: 可以将一个元素设置块元素显示. 3 ... 
- string::replace
			#include <string> #include <cctype> #include <algorithm> #include <iostream> ... 
- linux basic ------ shell
			一般习惯把 shell 脚本语言和 shell 解释器统称为 shell,用 shell 脚本语言编写的程序简称脚本. shell 解释器 是用 c 语言写一个应用程序,它是用户使用 Unix / L ... 
