Valid Parentheses

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.

C++:
01 class Solution {
02 public:
03     bool isValid(string s) {
04         // Start typing your C/C++ solution below
05         // DO NOT write int main() function
06         stack<char> A;
07         for(int i=0;i<s.size();i++)
08         {
09             if((s[i]==‘(‘)||(s[i]==‘[‘)||(s[i]==‘{‘))
10             {
11                 A.push(s[i]);
12                 continue;
13             }
14             if(A.empty())
15                 return false;
16             if(s[i]==‘)’)
17             {
18                 if(A.top()!=‘(‘)
19                     return false;
20                 A.pop();
21             }
22             else if(s[i]==‘]’)
23             {
24                 if(A.top()!=‘[‘)
25                     return false;
26                 A.pop();
27             }
28             else if(s[i]==‘}’)
29             {
30                 if(A.top()!=‘{‘)
31                     return false;
32                 A.pop();
33             }
34         }
35         return (A.empty());
36     }
37 };
Advertisements
This entry was posted in Stack and Queue. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s