题目:对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。
测试样例:
"(()())",6
返回:true
NOWCODER.COM
牛客网·互联网名企笔试/面试题库
牛客出品-http://www.nowcoder.com
比特科技制作
测试样例:
"()a()()",7
返回:false
测试样例:
"()(()()",7
返回:false
分析:判断一个字符串是不是一个合法的括号串用"栈"解决,遇到左括号(入栈,遇到右括号),看栈顶元素是不是左括号(是的话将其弹出...直到最后字符串完了栈也为空就说明是合法的括号串
bool isvalid(string str, int len)
{
stack<char> s;
for (auto e : str)//遍历字符串str
{
switch (e)
{
case '(':
s.push(e);
break;
case ')':
if (!s.empty() && s.top() == '(')
{
s.pop();
}
else
{
return false;
}
break;
default:
return false;
break;
}
}
if (!s.empty())
{
return true;
}
else
{
return false;
}
}