LeetCode20 有效括号 2018.4.15

原创 2018年04月15日 09:27:09

题干:

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

有效字符串需满足:

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

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

示例 1:

输入: "()"
输出: true

示例 2:

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

示例 3:

输入: "(]"
输出: false

示例 4:

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

示例 5:

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

#include<iostream>
#include<stack>
#include<string>
using namespace std;
class Solution
{
    public:
        bool isValid(string s)
        {
            if(s == "")
                return true;
            if(s[0] != '(' && s[0] != '[' && s[0] != '{')
                return false;
            if(s.length() % 2)
                return false;
            stack<char>a;
            a.push(s[0]);
            int i = 1;
            char c;
            while(i<s.length())
            {
                if(s[i] == '(' || s[i] == '{' || s[i] == '[')
                {
                    a.push(s[i]);
                }
                switch(s[i])
                {
                    case '}' : c = a.top();
                                    if(c != '{')
                                        return false;
                                    else
                                        a.pop();
                                        break;
                    case ']' : c = a.top();
                        if(c != '[')
                            return false;
                        else
                            a.pop();
                        break;
                    case ')' : c = a.top();
                        if(c != '(')
                            return false;
                        else
                            a.pop();
                        break;
                }
                i++;
            }
            if(a.empty())
                return true;
            else
                return false;
        }
};
int main()
{
    Solution s;
    if(s.isValid("(]"))
    {
        puts("true");
    }
    else
        puts("false");
}

leetcode20

LeetCode20 --------Valid Parentheses 传统的括号匹配问题,考虑左括号和右括号,遇到左括号压栈,遇到右括号与栈顶元素比较。 这里我用一个Map来保存左右括号的对应...
  • zhangxiao93
  • zhangxiao93
  • 2015-10-06 22:19:05
  • 515

leetcode-20-合法的括号

public boolean isValid(String s) { if (s == null || s.length() == 0 || (s.length() & 1) == 1...
  • u013115610
  • u013115610
  • 2017-05-15 21:59:50
  • 149

leetcode20 Valid Parentheses 有效的括号

给定字符串,包含(,),{,},[,],判断是不是有效的字符串。 括号必须以正确的顺序闭合,比如()、([])和()[]{}是有效的,但是(]和([)]是无效的。...
  • chenKFKevin
  • chenKFKevin
  • 2017-10-13 16:00:19
  • 1310

leetcode 括号组合题目 20 是否是有效括号 32 最大有效括号 301 去掉无效括号

20. Valid Parentheses 有效括号 Given a string containing just the characters '(', ')', '{', '}', '[' ...
  • m0_37693059
  • m0_37693059
  • 2017-08-04 18:26:27
  • 419

leetcode----最长有效括号字串

题目描述 Given a string containing just the characters'('and')', find the length of the longest val...
  • renjiewen1995
  • renjiewen1995
  • 2016-04-19 20:34:53
  • 231

寻找最长有效括号对(leetcode)

Longest Valid Parentheses  Total Accepted: 9222 Total Submissions: 48705My Submissions G...
  • u013434984
  • u013434984
  • 2014-06-02 09:58:44
  • 712

最长有效括号的长度问题

今天在庞果网看到”最长有效括号的长度“这个问题,自己做了一下,自己测试的时候可以通过。但是在提交却说代码测试用例不成功。自己想不出让代码可以失败的例子。有点想不通。但是我还是相信我这个代码还是,如果谁...
  • z_515974122
  • z_515974122
  • 2013-12-06 13:00:13
  • 1228

LeetCode 20. 有效的括号

题目描述: 有效的括号                给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。        括号必须以正确的顺序关闭,&quot...
  • qq_33168253
  • qq_33168253
  • 2018-03-29 13:56:49
  • 26

longest valid parentheness 最长有效括号问题

https://leetcode.com/problems/longest-valid-parentheses/ 题目要求:         输入一个字符串s,里面在只包含两种字符 '('和 ')...
  • u010232171
  • u010232171
  • 2015-03-29 17:20:41
  • 304

LintCode_有效的括号序列

笔试面试算法题
  • Tina_yaoyao
  • Tina_yaoyao
  • 2015-12-14 18:03:01
  • 1478
收藏助手
不良信息举报
您举报文章:LeetCode20 有效括号 2018.4.15
举报原因:
原因补充:

(最多只允许输入30个字)