Java 检查回文字符串

回文是一个词,短语,数字或其他单位序列,可以读取相同的方式在任何方向。 为了检查一个单词是否是回文,我得到了这个单词的char数组并比较了这些字符。我试过了,看起来很管用。但是我想知道这是对的还是有什么需要改进的地方。

这是我的代码:

public class Aufg1 {

public static void main(String[] args) {

String wort = "reliefpfpfeiller";

char[] warray = wort.toCharArray();

System.out.println(istPalindrom(warray));

}

public static boolean istPalindrom(char[] wort){

boolean palindrom = false;

if(wort.length%2 == 0){

for(int i = 0; i < wort.length/2-1; i++){

if(wort[i] != wort[wort.length-i-1]){

return false;

}else{

palindrom = true;

}

}

}else{

for(int i = 0; i < (wort.length-1)/2-1; i++){

if(wort[i] != wort[wort.length-i-1]){

return false;

}else{

palindrom = true;

}

}

}

return palindrom;

}

}

回答:

为什么不只是:

public static boolean istPalindrom(char[] word){

int i1 = 0;

int i2 = word.length - 1;

while (i2 > i1) {

if (word[i1] != word[i2]) {

return false;

}

++i1;

--i2;

}

return true;

}

例:

输入为“ andna”。

i1将为0,i2将为4。

第一次循环迭代,我们将比较word[0]word[4]。它们相等,因此我们将i1递增(现在为1),然后将i2递减(现在为3)。

因此,我们然后比较n。它们相等,因此我们将i1递增(现在为2),将i2递减(现在为2)。

现在i1和i2相等(它们都为2),因此while循环的条件不再成立,因此该循环终止并返回true。

以上是 Java 检查回文字符串 的全部内容, 来源链接: utcz.com/qa/402430.html

回到顶部