gpt4 book ai didi

java - 比较堆栈中的项目

转载 作者:行者123 更新时间:2023-12-01 18:34:53 24 4
gpt4 key购买 nike

我正在尝试比较两个单独的堆栈,看看它们是否相同。我有一个循环迭代每个堆栈中的每个对象并比较这两个对象。我想要发生的是,如果它们相等,则继续循环并返回 true。如果它们在任何给定点都不相等,则中断循环并返回 false。这是我写的:

    public boolean isPalindrome (Stack a, Stack b) {
Object temp1;
Object temp2;
boolean answer;

for (int i = 0; a.size() > 0; i++) {
temp1 = a.pop();
temp2 = b.pop();

if (temp1 != temp2) {
answer = false;
}
else {
answer = true;
}

}
return answer;

}

我看到这里发生的是我有一个 boolean 值,并且通过每个循环,根据对象的内容为该 boolean 值分配一个值,然后在循环结束时,返回该 boolean 值的最新状态。无论我将变量初始化为什么,循环都不会对其执行任何操作。不能在循环中修改或返回 boolean 值吗?对于这个例子,更好的方法是什么?我已经查看了大量其他类似问题的帖子,但他们中的大多数似乎都在尝试一些不同的广告,我想尽可能忠实于我最初的想法,我只需要知道我做错了什么。任何建议都会有很大帮助。谢谢!

最佳答案

基本思想是,一旦发现堆栈不相等,就可以返回 false(这会中断方法执行)。否则返回true:

public boolean isPalindrome (Stack a, Stack b) {
if (a.size() != b.size()) {
return false;
}

while (a.size() > 0) {

if (!a.pop().equals(b.pop())) {
return false;
}

}
return true;

}

关于java - 比较堆栈中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22455726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com