码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode题解:Valid Parentheses(栈的应用-括号匹配)

时间:2014-07-09 21:12:58      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   strong   os   for   

题目:

Given a string containing just the characters ‘(‘‘)‘‘{‘‘}‘‘[‘ and ‘]‘, determine if the input string is valid.

The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

说明:

     1)括号可嵌套,如{[()]}

实现:

 1 class Solution {
 2 public:
 3     bool isValid(string s) {
 4         if(s.empty()) return false;//空字符串,false
 5         int len=strlen(s.c_str());
 6         if(len==1) return false;//只有一个字符,false
 7         char pre;
 8         stack<char> char_stack;
 9         for(int i=0;i<len;i++)
10         {
11            if(isPop(s[i])) //该出栈顶元素
12            {
13                if(!char_stack.empty())
14                {
15                    pre=char_stack.top();//取栈顶元素、并出栈
16                    char_stack.pop();
17                    if(!isChar(pre,s[i]))//是否匹配
18                       return false;
19                }
20                else return false;
21            }
22            else //入栈
23            {
24                char_stack.push(s[i]);
25            }
26         }
27        return char_stack.empty();//栈空true,否则false
28     }
29 private:
30     bool isPop(char t) //判断是否是)} ]符号,是则出栈栈顶元素
31     {
32         if(t==)||t==}||t==])
33            return true;
34         else 
35            return false;
36     }
37     bool isChar(char t1,char t2)//判断两字符t1,t2是否匹配
38     {
39         switch (t1)
40         {
41             case (:
42             {
43                 if(t2==)) return true;
44                 else return false;
45                 break;
46             }
47             case {:
48             {
49                 if(t2==}) return true;
50                 else return false;
51                 break;
52             }
53             case [:
54             {
55                 if(t2==]) return true;
56                 else return false;
57                 break;
58             }
59             default: 
60                 return false;
61         }
62     }
63 };

 

leetcode题解:Valid Parentheses(栈的应用-括号匹配),布布扣,bubuko.com

leetcode题解:Valid Parentheses(栈的应用-括号匹配)

标签:style   blog   color   strong   os   for   

原文地址:http://www.cnblogs.com/zhoutaotao/p/3829921.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!