java - 确定输入字符串是否为回文的有效方法

标签 java string optimization palindrome

我最近写了这个简短的方法来判断一个字符串是否是回文。我想知道我可以做些什么来提高效率,当然我缺少可以加快计算速度的简单内置函数。

谢谢大家的帮助!

boolean checkPalindrome(String inputString) {

    ArrayList<Character> arrFront = new ArrayList<Character>();
    ArrayList<Character> arrBack = new ArrayList<Character>();

    for(int i=0; i<inputString.length()-1; i++) {
        arrFront.add(inputString.charAt(i));
    }

    for(int i=inputString.length()-1; i>0; i--) {
        arrBack.add(inputString.charAt(i));
    }

    StringBuilder builder1 = new StringBuilder(arrFront.size());
    for (Character c : arrFront) {
        builder1.append(c);
    }
    String front = builder1.toString();

    StringBuilder builder2 = new StringBuilder(arrBack.size());
    for (Character c : arrBack) {
        builder2.append(c);
    }
    String back = builder2.toString();

    return(front.equals(back));
}

最佳答案

在效率方面,并不总是与内置函数和使用库有关(尽管在许多情况下它们是最佳选择)。但有时像这样的简单循环可能是最简单有效的方法:

private boolean checkPalindrome(String inputString) {
    for(int i = 0, j = inputString.length() - 1; i < j; i++, j--) {
        if(inputString.charAt(i) != inputString.charAt(j)) {
            return false;
        }
    }
    return true;
}

关于java - 确定输入字符串是否为回文的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53908237/

相关文章:

java - 了解从 HashSet 生成的流中元素的顺序

java - RSA - bouncycaSTLe PEMReader 返回 PEMKeyPair 而不是 AsymmetricCipherKeyPair 用于读取私钥

c - 如何定义和初始化结构体内部的字符串数组?

python - 函数内部多处理 scipy 优化的奇怪行为

performance - 我应该禁用超线程来运行并行模拟吗?

c++ - 数组中值的快速乘法

java - 使用 Java 8 并行流时松开 Java EE 请求范围是否正常?

c++ - C++宏中的字符串修改

string - Powershell替换功能奇怪的行为

java - Netbeans Java 调试器声称 ((true && false) == true)