我试图创建一个程序,使用堆栈和队列来检查单词是否是回文。
到目前为止这是我的程序
import java.io.*;
import java.util.Scanner;
public class isPalindrome {
public static boolean isPal(String str){
QueueArrayBased queue = new QueueArrayBased();
StackArrayBased stack = new StackArrayBased();
for (int i = 0; i<=str.length(); i++){
queue.enqueue(i);
stack.push(i);
}
while (queue.isEmpty != 0){
if (queue.dequeue() != stack.pop())
return false;
}
return true;
}
public static void main (String [] args){
Scanner keyboard = new Scanner(System.in);
System.out.print("Type Word: ");
String str = keyboard.nextLine();
System.out.println("Word: " + str);
System.out.println(isPal(str));
}
}
当我编译说:
时,我收到错误"isPalindrome.java:16: cannot find symbol
symbol : variable isEmpty
location: class QueueArrayBased
while (queue.isEmpty != 0)"
这是#Empty方法,它给我一个错误
public boolean isEmpty()
{
return count == 0;
} // end isEmpty
我是Java的新手,我不知道自己做错了什么。
答案 0 :(得分:4)
您正在调用方法,因此它应该是queue.isEmpty() != 0
。
执行queue.isEmpty
时,编译器会在isEmpty
中查找变量queue
。由于该变量不存在,因此会抛出错误。