Java回文数算法 简介 回文数是指从前往后和从后往前读都是一样的数。如101、121、12321等都是回文数。本文将介绍如何使用Java编写回文数算法,并提供代码示例。 算法思路 回文数的判
Java回文数算法
简介
回文数是指从前往后和从后往前读都是一样的数。如101、121、12321等都是回文数。本文将介绍如何使用Java编写回文数算法,并提供代码示例。
算法思路
回文数的判断可以通过将数字转换为字符串,然后比较字符串的前后字符是否相等来实现。具体步骤如下:
- 将数字转换为字符串。
- 使用双指针法,一个指针指向字符串的开头,另一个指针指向字符串的末尾。
- 如果两个指针指向的字符相同,则将两个指针同时往中间移动一位。
- 如果两个指针指向的字符不同,则说明不是回文数,直接返回false。
- 如果两个指针相遇,则说明是回文数,返回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
相同 -->> 结束: 指针相遇