LeetCode第20题之Valid Parentheses

原创 2016年05月31日 09:15:17

方法一:用栈实现
C++代码:

#include <stack>
#include <iostream>
using namespace std;
//Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

class Solution {
public:
    char reverse_char(char c)
    {
        switch(c)
        {
        case ')': return '(';
        case '}': return '{';
        case ']': return '[';
        default: return '\0';
        }
    }

    bool isValid(string s) {
        stack<char> sta;
        int sz = s.length();
        if (sz%2 != 0)
        {
            return false;
        }
        for (int i=0;i<sz;++i)
        {
            if ('(' == s[i] || '{' == s[i] || '[' == s[i])
            {
                sta.push(s[i]);
            }
            else if (')' == s[i] || '}' == s[i] || ']' == s[i])
            {
                if (0 == sta.size() || sta.top() != reverse_char(s[i]))
                {
                    return false;
                }
                sta.pop();
            }
        }
        if (0 == sta.size())
        {
            return true;
        }
        return false;
    }
};

int main()
{
    Solution s;
    cout<<s.isValid("{([])}");
    cout<<endl;
    cout<<s.isValid("{(])}");
    cout<<endl;
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

【LeetCode-面试算法经典-Java实现】【022-Generate Parentheses(生成括号)】

【022-Generate Parentheses(生成括号)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given n pairs of parentheses, ...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月23日 07:52
  • 2364

Python学习(Leetcode 算法题解【1~20】)

掌握了python的基础概念,并不意味着就可以使用python来进行项目开发了。学习一门编程语言时,对于概念的掌握只是基础。用该语言去解决实际问题,并在解决问题的过程中学习才是学一门语言时费时较长的部...
  • Hans__Yang
  • Hans__Yang
  • 2016年07月20日 21:35
  • 1373

Valid Parentheses 判断括号组合是否有效@LeetCode

package Level2; import java.util.Stack; /** * * Valid Parentheses * * Given a string containi...
  • hellobinfeng
  • hellobinfeng
  • 2013年10月25日 02:16
  • 6137

leetcode第20题——*Valid Parentheses

题目 Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if th...
  • buptlrw
  • buptlrw
  • 2016年02月27日 11:45
  • 386

Leetcode 第20题 Valid Parentheses

题目:Valid Parentheses Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, ...
  • newbie_ljm
  • newbie_ljm
  • 2015年12月01日 20:21
  • 106

Leetcode #32. Longest Valid Parentheses 最长括号对 结题报告

1 结题思想题目会给出一定的“((())))”等的括号对,问你说最长的有效括号对是多长?这道题,需要用Stack,并且不能单纯的统计(或),且出栈,其大致有如下的规则:1、遇到(要压栈当前位置 2、...
  • MebiuW
  • MebiuW
  • 2016年04月03日 23:06
  • 494

关于LeetCode中Valid Parentheses一题的理解

题目如下: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine ...
  • zsy112371
  • zsy112371
  • 2016年09月22日 16:19
  • 1348

和大神们学习每天一题(leetcode)-Valid Parentheses

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the in...
  • majunyangyang
  • majunyangyang
  • 2014年12月07日 16:00
  • 181

leetcode:Longest Valid Parentheses 使用动态规划O(n)思路

Given a string containing just the characters '(' and ')', find the length of the longest valid (w...
  • tingting256
  • tingting256
  • 2015年09月27日 17:08
  • 394

LeetCode OJ 20 Valid Parentheses [Easy]

LeetCode OJ 20 Valid Parentheses 题目描述: Given a string containing just thecharacters '(', ')', '{', ...
  • qq_20745131
  • qq_20745131
  • 2017年07月11日 21:56
  • 145
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode第20题之Valid Parentheses
举报原因:
原因补充:

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