如何在Java中查找数组中最大的回文数?


在Java中,数组是一个对象。它是一种非基本数据类型,用于存储相同数据类型的值。

根据问题陈述,我们必须在数组中找到最大的回文数。如果一个数字反转后等于原来的数字,则称其为回文数。

让我们探索这篇文章,看看如何使用Java编程语言来实现。

为您展示一些实例

实例1

Suppose the original array is {857, 232, 1996991, 54545}

找到数组中最大的回文数后,结果将为:

1996991 is the largest palindrome of a given array.

实例2

Suppose the original array is {2357, 23232, 568568, 1238321}

找到数组中最大的回文数后,结果将为:

1238321 is the largest palindrome of a given array.

实例3

Suppose the original array is {557, 2325532, 56465, 6238326}

找到数组中最大的回文数后,结果将为:

6238326 is the largest palindrome of a given array.

算法

  • 步骤1 - 声明并初始化一个整数数组。

  • 步骤2 - 将数组按升序排序。

  • 步骤3 - 获取数组中最大的元素。

  • 步骤4 - 反转最大的元素。

  • 步骤5 - 检查回文。

  • 步骤6 - 打印结果。

语法

要获取数组的长度(数组中的元素个数),数组有一个内置属性,即length

以下是它的语法:

array.length

其中“array”指代数组引用。

多种方法

我们提供了多种不同的方法来解决这个问题。

  • 使用静态数组初始化。

  • 使用用户自定义方法。

让我们逐一查看程序及其输出。

方法1:使用静态数组初始化

示例

在这种方法中,数组元素将在程序中初始化。然后根据算法在数组中找到最大的回文数。

import java.util.*;   
public class Main { 
 
   public static void main(String args[]){ 
   
      //Declare and initialize the array elements
      Integer arr[] = { 857, 232, 1996991, 54545 };
      System.out.println("Given array is: "+Arrays.toString(arr));
      
      //sorting array in ascending order
      Arrays.sort(arr);
      for (int i = arr.length - 1; i >= 0; i--){
         String reverse = "";
         
         //getting the largest element in an array
         String original = Integer.toString(arr[i]);
         
         //reversing the largest element
         int length = original.length();   
         for ( int j = length - 1; j >= 0; j-- )  {
            reverse = reverse + original.charAt(j); 
         }
         
         //checking for palindrome
         if (original.equals(reverse))  {
            System.out.println(arr[i] + " is the largest palindrome of a given array.");
         }
         break;
      }
   }  
}  

输出

Given array is: [857, 232, 1996991, 54545]
1996991 is the largest palindrome of a given array.

方法2:使用用户自定义方法

示例

在这种方法中,数组元素将在程序中初始化。然后通过将数组作为参数调用用户自定义方法,并在方法内部根据算法查找数组中最大的回文数。

import java.util.*;   
public class Main {  
   public static void main(String args[]){ 
   
      //Declare and initialize the array elements
      Integer arr[] = { 557, 2325532, 56465, 6238326 };
      System.out.println("Given array is: "+Arrays.toString(arr));
      
      //calling user defined method
      func(arr);   
   }
   
   //user defined method
   static void func(Integer arr[]){
   
      //sorting array in ascending order
      Arrays.sort(arr);
      for (int i = arr.length - 1; i >= 0; i--){
         String reverse = "";
         
         //getting the largest element in an array
         String original = Integer.toString(arr[i]);
         
         //reversing the largest element
         int length = original.length();   
         for ( int j = length - 1; j >= 0; j-- )  {
            reverse = reverse + original.charAt(j); 
         }
         
         //checking for palindrome
         if (original.equals(reverse))  {
            System.out.println(arr[i] + " is the largest palindrome of a given array.");
         }
         break;
      }
   }  
}  

输出

Given array is: [557, 2325532, 56465, 6238326]
6238326 is the largest palindrome of a given array.

在这篇文章中,我们探索了使用Java编程语言在数组中查找最大回文数的不同方法。

更新于:2023年1月5日

2K+ 次查看

启动您的职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.