回文 是一个单词、短语、数字或其他单位序列,可以从任一方向以相同的方式阅读。
为了检查一个单词是否是回文,我得到了单词的字符数组并比较了字符。我测试了它,它似乎有效。但是我想知道它是否正确或者是否有需要改进的地方。
这是我的代码:
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;
}
}
原文由 DarkLeafyGreen 发布,翻译遵循 CC BY-SA 4.0 许可协议
为什么不只是:
例子:
输入是“andna”。
i1 将为 0,i2 将为 4。
我们将比较
word[0]
和word[4]
的第一个循环迭代。它们相等,所以我们增加 i1(现在是 1)并减少 i2(现在是 3)。所以我们然后比较n。它们相等,所以我们增加 i1(现在是 2)并减少 i2(现在是 2)。
现在 i1 和 i2 相等(它们都是 2),因此 while 循环的条件不再为真,因此循环终止并且我们返回真。