22. Valid Parenthesis String
Input: s = "()"
Output: trueInput: s = "(*)"
Output: trueInput: s = "(*))"
Output: trueSolution: (Recursion)
class Solution
{
public:
bool checkValid(string s, int pos, int co, int cc)
{
if (pos == s.length())
{
if (co == cc)
{
return true;
}
return false;
}
if (cc > co)
{
return false;
}
if (s[pos] == '(')
{
return checkValid(s, pos + 1, co + 1, cc);
}
else if (s[pos] == ')')
{
return checkValid(s, pos + 1, co, cc + 1);
}
else
{
return checkValid(s, pos + 1, co + 1, cc) || checkValid(s, pos + 1, co, cc + 1) || checkValid(s, pos + 1, co, cc);
}
}
bool checkValidString(string s)
{
return checkValid(s, 0, 0, 0);
}
};Solution: (Using Two Stacks)
Solution:(Optimized)
Last updated