Valid Parentheses
'('
, ')'
,
'{'
, '}'
, '['
and ']'
, determine if the input string is valid.The brackets must close in the correct order,
"()"
and "()[]{}"
are all valid but
"(]"
and "([)]"
are not.Thoughts:
A stack should do the job.
Solution:
- class Solution {
- public:
- char counterPart(const char ch)
- {
- switch(ch)
- {
- case '{':
- return '}';
- case '[':
- return ']';
- case '(':
- return ')';
- default:
- return 0;
- }
- }
- bool isValid(string s) {
- stack<char> parenthesis;
- for(auto ch: s)
- if (ch == '(' || ch == '[' || ch == '{')
- parenthesis.push(ch);
- else
- if (!parenthesis.empty() && ch == counterPart(parenthesis.top()))
- parenthesis.pop();
- else
- return false;
- return parenthesis.empty();
- }
- };
No comments:
Post a Comment