20. Valid Parentheses
Given a string s
containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
- Every close bracket has a corresponding open bracket of the same type.
Example 1:
Input: s = "()" Output: true
Example 2:
Input: s = "()[]{}" Output: true
Example 3:
Input: s = "(]" Output: false
Constraints:
1 <= s.length <= 104
s
consists of parentheses only'()[]{}'
.
solution :
class Solution {
public:
bool isValid(string s) {
stack<char>a;
if(s[0] == '}' || s[0] == ')' || s[0] == ']')
return false;
a.push(s[0]);
int i = 1;
while(i < s.length())
{
if(s[i] == '{' || s[i] == '[' || s[i] =='(' )
{
a.push(s[i]);
}
else
{
if(a.empty())
return false;
char t = a.top();
if((s[i] == '}' && t == '{') || (s[i] == ']' && t == '[') || (s[i] == ')' && t == '(') )
a.pop();
else
return false;
}
i++;
}
if(a.empty())
return true;
return false;
}
};
Comments
Post a Comment