20. 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.

题目大意:

括号匹配问题。

思路:

采用压栈出栈来处理。

classSolution{public:boolisValid(strings){if(s.size()==0||s.size()%2==1)returnfalse;map<char,char>brackets;brackets.insert(pair<char,char>('}','{'));brackets.insert(pair<char,char>(']','['));brackets.insert(pair<char,char>(')','('));stack<char>mystack;for(inti=0;i<s.size();i++){if(s[i]=='{'||s[i]=='['||s[i]=='('){mystack.push(s[i]);}else{if(mystack.size()<1)returnfalse;if(brackets[s[i]]==mystack.top())mystack.pop();elsereturnfalse;}}if(mystack.size()==0)returntrue;elsereturnfalse;}};

2016-08-11 00:30:15