所以这是我的问题:
我应该写一个c ++程序来检查字符串是否平衡.到目前为止,我有代码工作,以确保它具有相同数量的('s和')(与['s和{'s相同).问题在于它适用于几乎所有的东西,但它不适用于{'s,('s和[都混淆了]的字符串.
例如:"{{[()]}()}"恢复为平衡(真实).但是,"{([]})"会回来,但不应该.
逻辑和/或代码中有哪些想法可以检查它们何时出现故障?
谢谢你的帮助!
万一有帮助,我的代码如下:
bool ExpressionManager::isBalanced(string expression)
{
//remove whitespace
string edited;
for(int i = 0; i < expression.length(); i++)
{
if(expression[i] == ' ')
{
continue;
}
else
{
edited += expression[i];
}
}
expression = edited;
//set up brckets
string brackets;
for(int i = 0; i < expression.length(); i++)
{
if (expression.at(i)=='(')
{
brackets += expression.at(i);
}
if (expression.at(i)=='[')
{
brackets += expression.at(i);
}
if (expression.at(i)=='{')
{
brackets += expression.at(i);
}
if (expression.at(i)=='}')
{
brackets …Run Code Online (Sandbox Code Playgroud)