当前位置 : 主页 > 编程语言 > java >

java回文数算法

来源:互联网 收集:自由互联 发布时间:2023-10-10
Java回文数算法 简介 回文数是指从前往后和从后往前读都是一样的数。如101、121、12321等都是回文数。本文将介绍如何使用Java编写回文数算法,并提供代码示例。 算法思路 回文数的判

Java回文数算法

简介

回文数是指从前往后和从后往前读都是一样的数。如101、121、12321等都是回文数。本文将介绍如何使用Java编写回文数算法,并提供代码示例。

算法思路

回文数的判断可以通过将数字转换为字符串,然后比较字符串的前后字符是否相等来实现。具体步骤如下:

  1. 将数字转换为字符串。
  2. 使用双指针法,一个指针指向字符串的开头,另一个指针指向字符串的末尾。
  3. 如果两个指针指向的字符相同,则将两个指针同时往中间移动一位。
  4. 如果两个指针指向的字符不同,则说明不是回文数,直接返回false。
  5. 如果两个指针相遇,则说明是回文数,返回true。

代码示例

public class PalindromeNumber {
    public static boolean isPalindrome(int num) {
        String str = Integer.toString(num);
        int left = 0;
        int right = str.length() - 1;

        while (left < right) {
            if (str.charAt(left) != str.charAt(right)) {
                return false;
            }
            left++;
            right--;
        }

        return true;
    }

    public static void main(String[] args) {
        int num = 12321;
        boolean result = isPalindrome(num);
        System.out.println("Is " + num + " a palindrome number? " + result);
    }
}

运行结果

Is 12321 a palindrome number? true

总结

本文介绍了使用Java编写回文数算法的思路和实现步骤,并提供了代码示例。通过将数字转换为字符串,并使用双指针法进行比较,可以判断一个数是否为回文数。这是一种简单而有效的算法,适用于任意长度的数字。在实际应用中,可以用于判断身份证号码、电话号码等是否为回文数,从而增加程序的健壮性和准确性。

旅行图

journey
    title 回文数算法旅行图

    section 起点
    起点 --> 指针位置

    section 判断
    指针位置 --> 比较字符
    比较字符 --> 不同
    比较字符 --> 相同
    不同 --> 结束
    相同 --> 移动指针

    section 结束
    结束 --> 返回结果

序列图

sequenceDiagram
    participant 输入数字
    participant 转换为字符串
    participant 双指针法
    participant 比较字符
    participant 返回结果

    输入数字 ->> 转换为字符串: 调用toString()方法
    转换为字符串 ->> 双指针法: 传递字符串
    双指针法 ->> 比较字符: 传递字符串和指针位置
    比较字符 -->> 不同: 字符不相等
    比较字符 -->> 相同: 字符相等
    不同 -->> 返回结果: 返回false
    相同 ->> 移动指针: 移动指针位置
    移动指针 ->> 比较字符: 传递字符串和指针位置
    不同 -->> 返回结果: 返回false
    相同 -->> 移动指针: 继续移动指针位置
    移动指针 ->> 比较字符: 传递字符串和指针位置
    不同 -->> 返回结果: 返回false
    相同 -->> 移动指针: 继续移动指针位置
    移动指针 ->> 比较字符: 传递字符串和指针位置
    不同 -->> 返回结果: 返回false
    相同 -->> 移动指针: 继续移动指针位置
    移动指针 ->> 比较字符: 传递字符串和指针位置
    不同 -->> 返回结果: 返回false
    相同 -->> 结束: 指针相遇
上一篇:java格式校验
下一篇:没有了
网友评论