gpt4 book ai didi

java - 检查回文字符串

转载 作者:IT老高 更新时间:2023-10-28 11:37:52 24 4
gpt4 key购买 nike

一个 palindrome是一个单词、短语、数字或其他单位序列,可以在任一方向上以相同的方式阅读。

为了检查一个词是否是回文,我得到了这个词的 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 循环的条件不再为真,所以循环终止,我们返回真。

关于java - 检查回文字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4138827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com