当前位置: 首页 > 面试题库 >

Java 检查回文字符串

单于阳
2023-03-14
问题内容

回文是一个词,短语,数字或其他单位序列,可以读取相同的方式在任何方向。 为了检查一个单词是否是回文,我得到了这个单词的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程序检查字符串为回文,包括了Java程序检查字符串为回文的使用技巧和注意事项,需要的朋友参考一下 如果即使反向将每个字符的位置都保持不变,则字符串为回文字符串。例如,``MADAM''是回文字符串,因为即使反向将字符串``MADAM''也使每个字符的位置保持不变。作为回文与否,我们可以使用库方法,也可以不使用库方法。 但是,如果我们要检查“女士”是否是回文,则由于首字母大写,

  • 问题内容: 我想检查一个字符串是否是回文。我想学习一种使用最少的字符串操作来检查相同内容的简单方法 问题答案: 您可以尝试这样的事情:

  • 问题内容: 我有以下内容: 我的代码有什么问题?我想检查一下这个词是否是回文。 问题答案: 也许我会建议替代解决方案: UPD。但是请记住,这几乎是“作弊”方法,是对语言功能的智能用法的演示,但不是最实用的算法(时间O(n),空间O(n))。对于现实生活中的应用程序或编码面试,您绝对应该使用循环解决方案。JasonSebring在此线程中发布的一个既简单又有效(时间O(n),空间O(1))。

  • 问题内容: 我想编写一个Java方法,如果字符串是回文,则返回true。 这是我到目前为止的内容: 我的问题是,它不考虑像这样的单词:回文。 在不区分大小写并忽略标点符号的情况下,测试这是否是回文式的最佳方法是什么。 问题答案: 使用此正则表达式删除所有标点和空格并将其转换为小写

  • 我应该编写一个程序,它接受表示整数字符串作为输入,如果每个字符都是数字0-9,则输出是。 我已经回到我的章节阅读和谷歌,但仍然有问题。我知道我的代码一团糟,但我迷路了。我可能会有一些正确的或错误的东西,但这就是我所拥有的。 我哪里错了??

  • 问题内容: 我需要检查一个字符串是否包含汉字。搜索之后,我发现我必须在这种模式下查看正则表达式,但是我无法使正则表达式正常工作。 任何人都经历过这种情况?正则表达式正确吗? 问题答案: 作为讨论在这里,在Java 7(即正则表达式编译器符合要求RL1.2属性从UTS#18 Unicode的正则表达式 ),你可以使用下面的正则表达式匹配中国(当然,CJK)字符: 可以简单地理解为