这是while循环的正确逻辑: 1.如果堆栈不是空的执行... 2.检查堆栈顶部的元素==队列底部的元素。这个while循环如何迭代?
这将继续,直到堆栈/队列首先完成(如果一个回文,然后他们在同一时间完成)?我认为对于if(s.pop()....)我必须用for循环来遍历?
干杯!
for (int i = 0; i < word.length(); i++) {
letter = word.charAt(i);
s.push(i);
q.add(i);
}
while (!s.isEmpty()) {
if (s.pop()) != q.remove()) {
return false;
}
}
如果's'是你的堆栈...什么是'q'? – Tavo
首先解释你正在尝试做什么。 – shmosel
你可能打算在'push'和'add'调用中使用'letter'(而不是'i')。另外,返回新的StringBuilder(word).reverse()。toString()。equals(word);'更具可读性。 –