码迷,mamicode.com
首页 > 编程语言 > 详细

20. Valid Parentheses(C++)

时间:2017-03-05 23:46:31      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:bre   style   ++   default   efault   turn   rmi   log   inpu   

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.

Solution :
 1 class Solution {
 2 public:
 3     bool isValid(string s) {
 4         if(s.size()<2) return false;
 5         stack<char> stk;
 6         for(int i=0;i<s.size();i++){
 7             if((s[i]==()||(s[i]==[)||(s[i]=={)) stk.push(s[i]);
 8             if((s[i]==})||(s[i]==])||(s[i]==))){
 9                 if(stk.empty()) return false;
10                 char c=stk.top();
11                 stk.pop();
12                 switch (s[i]){
13                     case }: if(c!={) return false; break;
14                     case ): if(c!=() return false; break;
15                     case ]: if(c!=[) return false; break;
16                 }
17             }
18         }
19         if(!stk.empty()) return false;
20         return true;
21     }
22 };

better solution:

 1 class Solution {
 2 public:
 3     bool isValid(string s) {
 4         stack<char> paren;
 5         for (char& c : s) {
 6             switch (c) {
 7                 case (: 
 8                 case {: 
 9                 case [: paren.push(c); break;
10                 case ): if (paren.empty() || paren.top()!=() return false; else paren.pop(); break;
11                 case }: if (paren.empty() || paren.top()!={) return false; else paren.pop(); break;
12                 case ]: if (paren.empty() || paren.top()!=[) return false; else paren.pop(); break;
13                 default: ; // pass
14             }
15         }
16         return paren.empty() ;
17     }
18 };

 

20. Valid Parentheses(C++)

标签:bre   style   ++   default   efault   turn   rmi   log   inpu   

原文地址:http://www.cnblogs.com/devin-guwz/p/6507086.html

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