📜  用于检查字符串是否为回文串的Java程序(1)

📅  最后修改于: 2023-12-03 15:27:11.695000             🧑  作者: Mango

用于检查字符串是否为回文串的Java程序

简介

回文串是指将字符串倒序排列后得到的新字符串与原字符串相同的字符串。检查一个字符串是否为回文串是计算机科学中一个经典的问题。本文介绍了用于检查字符串是否为回文串的Java程序。

实现方法

要判断一个字符串是否为回文串,简单粗暴的方法是将字符串倒序后与原字符串比较是否相同。但是,这种方法的时间复杂度为O(n),并不是最优的解法。我们可以从两端向中间检查,只需要检查一半的字符,时间复杂度为O(n/2),效率更高。具体实现方法如下:

  1. 定义两个指针,一个指向字符串的头部,一个指向尾部。
  2. 以头部指针为起点,尾部指针为终点,每次向中间靠拢一位。
  3. 比较头部指针所指的字符与尾部指针所指的字符是否相同。如果相同,继续向中间靠拢;如果不同,说明字符串不是回文串,可以直接返回false。
  4. 如果整个字符串都检查完毕,没有返回false,则说明字符串为回文串,返回true。
代码实现
public class Palindrome {
    public static boolean isPalindrome(String s) {
        int i = 0, j = s.length() - 1;
        while (i < j) {
            if (s.charAt(i) != s.charAt(j)) {
                return false;
            }
            i++;
            j--;
        }
        return true;
    }
}
使用示例
String s1 = "racecar";
String s2 = "hello";
boolean b1 = Palindrome.isPalindrome(s1);
boolean b2 = Palindrome.isPalindrome(s2);
System.out.println(b1); // true
System.out.println(b2); // false
总结

本文介绍了用于检查字符串是否为回文串的Java程序。程序通过定义两个指针从字符串的两端向中间检查,只需要检查一半的字符,时间复杂度为O(n/2),效率更高。程序简单易懂,适合初学者入门学习。