【发布时间】:2017-10-31 00:38:38
【问题描述】:
所以我的任务是关于平衡符号,而不是 () 例如它是 ~~ 而对于 {} 它是 ^^,基本上符号应该匹配。 ,有人可以帮忙吗?
举个例子
BinarySearchTree~~: root ^ nullptr ^
^
^
this should return true
这是我写的函数
bool balanced(std::string expression)
{
int i;
std::stack<char>check;
char symbol;
for (i=0; i<expression.length();i++)
{
symbol=expression[i];
if(symbol=="~" || symbol=="^")
{
check.push(symbol);
}
if(check.empty())
return false;
else
check.pop();
}
if(check.empty())
return true;
}
【问题讨论】:
-
你的功能有效吗?如果没有,它怎么行不通?它给你带来了什么问题?请花一些时间来read about how to ask good questions,了解如何创建Minimal, Complete, and Verifiable Example 和how to debug small programs。
-
我现在的问题,我用一个应该返回 false 但它总是返回 true 的字符串进行了测试。
-
除了看起来错误的逻辑之外,还有不返回值的函数的执行路径。这意味着您有未定义的行为。
标签: c++ string algorithm stack