我正在使用堆栈和队列来检查字符串是否是回文。我的代码适用于" Anna"," Level",但它不适用于#34;一罐金枪鱼的坚果!"。我希望有人能帮助我
public boolean isPalindrome(String item) {
clearData();
String s = item.replaceAll("[\\W]", "");
for (int i = 0; i < s.length(); i++) {
stack.push(s.substring(i, i+1).toLowerCase());
queue.enqueue(s.substring(i, i+1).toLowerCase());
}
while (! stack.empty() && ! queue.empty()) {
if (! stack.pop().equals(queue.dequeue())) {
return false;
}
}
if (!stack.empty() || ! queue.empty())
return false;
return true;
}