Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 回文堆栈_Java_Stack - Fatal编程技术网

Java 回文堆栈

Java 回文堆栈,java,stack,Java,Stack,我写这个方法是为了检查一个单词是否是回文,但是当它是回文时,它总是返回false 公共布尔值isAlindrome(字符串s){ inti; int n=s.长度(); 堆栈=新堆栈(); 对于(i=0;i

我写这个方法是为了检查一个单词是否是回文,但是当它是回文时,它总是返回false

公共布尔值isAlindrome(字符串s){

inti;
int n=s.长度();
堆栈=新堆栈();
对于(i=0;i
我不知道你为什么不使用
{
}
括号。尽早学习适当的Java约定

if (c != s.charAt(i)); // <- this semicolon is your problem
return false; 
此外,for循环上的逻辑可能由于类似的原因而存在缺陷。删除分号,更好的做法是始终使用括号:

if (c != s.charAt(i)) {
  return false; 
}
@jhamon还指出,在while循环中,实际上从未增加
i

while(!stack.empty( )) {
  char c = stack.pop( );

  if (c != s.charAt(i)) {
    return false; 
  }

  i++;
}

正确地缩进代码将真正帮助您理解并注意
for(anycondition)doSomething();doOtherThing()
完全不同于(anycondition){doSomething();doOtherThing();}同意@sleepToken,您可能希望看到Java约定。虽然他们已经超过20岁了,但他们还没有过时关于永不改变的
i
值是什么?@ChrisAgbemabiese您是否记得删除
if
语句之后添加code>,并用
{
}
括号替换它?
if (c != s.charAt(i)) {
  return false; 
}
while(!stack.empty( )) {
  char c = stack.pop( );

  if (c != s.charAt(i)) {
    return false; 
  }

  i++;
}