bool isValid(string s) {
int cnt0 = 0, cnt1 = 0, cnt2 = 0;
vector<int> expect_type;
int index = 0;
while (index < s.length())
{
switch (s[index])
{
case '(':
cnt0++;
expect_type.push_back(0);
break;
case ')':
if (cnt0 == 0 || expect_type.back() != 0)
{
return false;
}
else
{
expect_type.pop_back();
cnt0--;
}
break;
case '[':
cnt1++;
expect_type.push_back(1);
break;
case ']':
if (cnt1 == 0 || expect_type.back() != 1)
{
return false;
}
else
{
expect_type.pop_back();
cnt1--;
}
break;
case '{':
cnt2++;
expect_type.push_back(2);
break;
case '}':
if (cnt2 == 0 || expect_type.back() != 2)
{
return false;
}
else
{
expect_type.pop_back();
cnt2--;
}
break;
}
index++;
}
if (cnt0 == 0 && cnt1 == 0 && cnt2 == 0)
{
return true;
}
else
{
return false;
}
}
[LeetCode] Valid Parentheses
最新推荐文章于 2019-07-31 23:36:17 发布