LeetCode --- Valid Parentheses

题目链接

Problem discription

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.

Accpted Code:

 1 class Solution {  2 public:  3     bool isValid(string s) {  4         map<char, char> brackets;  5         brackets['{'] = '}';  6         brackets['['] = ']';  7         brackets['('] = ')';  8         // use a stack to store every left brackets

 9         stack<char> leftBracket; 10         // length of s

11         int len = (int)s.length(); 12         

13         for (int i = 0; i < len; i++) { 14             if (s[i] == '(' || s[i] == '[' || s[i] == '{') { 15  leftBracket.push(s[i]); 16             } else { 17                 // there is no left bracket

18                 if (leftBracket.empty()) return false; 19                 char last = leftBracket.top(); 20                 // the previous left bracket doesn't match s[i]

21                 if (brackets[last] != s[i]) return false; 22  leftBracket.pop(); 23  } 24  } 25         // if there are some brackets left 26         // not used(no right brackets to match them)

27         return leftBracket.empty(); 28  } 29 };

 

你可能感兴趣的:(LeetCode)