64,632
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <string>
#include <stack>
/* 检查小括弧和中括弧混合串的匹配情况 */
bool checkBraces(std::string const &input_str)
{
std::stack<char> braces;
size_t const len(input_str.length());
for (size_t i(0); i < len; ++i)
{
switch (input_str[i])
{
case ')' :
if (!braces.empty() && braces.top() == '(')
{
braces.pop();
}
else
{
return false;
}
break;
case ']' :
if (!braces.empty() && braces.top() == '[')
{
braces.pop();
}
else
{
return false;
}
break;
case '(' :
braces.push('(');
break;
case '[' :
braces.push('[');
break;
default : break;
}
}
if (braces.empty())
{
return true;
}
else
{
return false;
}
}
int main()
{
std::string str("asdfg(a[[9s]gh)");
std::cout << checkBraces(str) << std::endl;
}