使用堆栈测试字符串中的x和y是否相等

Test for equal amount of x and y in string using stack

本文关键字:是否 堆栈 测试 字符串      更新时间:2023-10-16

我正在开发一个函数,该函数测试字符串中是否有相同数量的x和y。我希望有人能告诉我如何修复这个功能。我假设这个字符串只包含x和y。我认为这个代码看起来不错,但当我用不同顺序的字母追踪它时,不起作用

这是我的代码:

bbool equal(string Letters){
stack<string>a_stack;
for(int i=0; i<Letters.length(); i++){
    if(s[i]=='x')
        a_stack.push(Letters[i]);
}
for(int j=0; j<Letters.length(); j++){
    if(s[j]=='y')
        a_stack.pop();
}
if(a_stack.empty())
    return true;
else
    return false;

}

这是一个家庭作业,我被要求使用堆栈。

由于使用方式中提到的原因,单个堆栈将不起作用。您可以使用两个堆栈,一个用于x,另一个用于y,然后比较大小。

或者,你可以使用一个堆栈,对x按下1,对y按下-1。然后将堆栈相加。如果它们相等,则总和为0。