Valid系列。。
这次是个左右括号匹配的题目,很容易想到用栈,先入后出的属性。easy题。
#include <iostream>
#include <stack>
using namespace std;
bool isValid(string s)
{
stack<char> stk;
int start = 0, size = s.size();
for (; start < size; start++)
{
if (s[start] == '(' || s[start] == '{' || s[start] == '[')
stk.push(s[start]);
else if (s[start] == ')' || s[start] == '}' || s[start] == ']')
{
if(stk.empty())
return false;
else if (s[start] == ')' && stk.top() == '(')
stk.pop();
else if (s[start] == '}' && stk.top() == '{')
stk.pop();
else if (s[start] == ']' && stk.top() == '[')
stk.pop();
else
return false;
}
else
continue;
}
if (stk.empty())
return true;
else
return false;
}
int main()
{
string s = "{{[[]}}";
string s2 = "]";
if (isValid(s2))
cout << "True" << endl;
else
cout << "False" << endl;
return 0;
}