Java 中的回文程序 | 检查Polindrome的Java程序

已发表: 2021-02-26

目录

介绍

Java 因其简单性、架构中立性、平台独立性、分布式执行和可重用性而在程序员中获得了很多关注。 此外,java 有许多用于无缝编程的预定义库。 每个人都会热衷于用这种语言编写代码。

现在进入我们的主题,我们将编写一个 java 代码来检查给定的输入是否是回文。

如果一个数字或单词在反转后保持不变,则称其为回文。 我们可以迭代地以及递归地实现解决方案。 所以让我们开始吧!

迭代 Java 代码

这个想法很简单; 我们将声明一个变量“reverse”,它存储我们输入的倒数。

我们将在每次迭代中将反向变量乘以 10(用 0 填充单元的位置)。 然后,我们将输入数字除以 10 后的余数相加。余数相加后,我们将输入数字除以 10(以删除单元位置的数字)。

当输入数字变为 0 时,我们将停止上述算法,并且 reverse 变量中存在的数字将与输入数字相反。

公开课 upGrad{

公共静态无效主要(字符串[]参数){

诠释 n=12221;

诠释反向=0;

国际温度=n;

而(温度> 0){

反向=反向*10;

反向=反向+温度%10;

温度=温度/10;

}

如果(反向==n)

System.out.print(n+” 是回文”);

别的

System.out.print(n+" 不是回文");

}

}

在上面的代码中,我们声明了一个变量'n'来存储初始数字,我们必须检查数字n是否是回文。 在 while 循环中,我们将遵循我们之前讨论过的算法。 最后,我们正在检查反转的数字是否等于初始数字。 如果更改后的数字和初始数字相似,我们将其打印为回文,而不是回文。

现在,此代码仅适用于整数输入。 如果我们想检查给定的单词是否是回文,我们必须使用字符串来处理它。 这是执行此操作的代码。

公开课 upGrad{

公共静态无效主要(字符串[]参数){

字符串 s="转子";

字符串反向=新字符串();

for(int i=s.length()-1;i>=0;i–)

反向=反向+s.charAt(i);

if(s.equals(reverse))

System.out.print(s+" 是回文");

别的

System.out.print(s+" 不是回文");

}

}

在上面的代码中,我们将初始字符串从尾部到头部的字符附加到反向字符串并检查它是否等于初始字符串。 我们已经用一个单词对字符串进行了硬编码,但是我们可以使用扫描器类通过用户输入来初始化它。

递归 Java 代码

在这个实现中,我们将比较第一个和最后一个字符。 如果它们相等,则对剩余的字符串进一步递归。

但是这个逻辑不适用于具有奇数个字符的字符串。 所以如果我们包括一个基本情况,我们将一个字符串总结为回文,如果一个字符串的长度是一个,即第一个和最后一个字符的位置是相同的。 这将清除奇数字符串的问题,因为我们将递归到中间元素,然后将其总结为回文,因为中间只有一个字符。

公开课 upGrad{

public static boolean isPalindrome(String str, int low, int high){

如果(低==高)

返回真;

如果(str.charAt(低)!=str.charAt(高))

返回假;

如果(高-低> 1)

返回 isPalindrome(str,low+1,high-1);

返回真;

}

公共静态无效主要(字符串[]参数){

字符串 s1="转子";

字符串 s2="编程";

System.out.println(isPalindrome(s1,0,s1.length()-1));

System.out.println(isPalindrome(s2,0,s2.length()-1));

}

}

在上面的代码中,我们编写了一个函数,它需要一个字符串,两个整数作为参数。 而两个整数,低,高是跟踪必须检查的字符的指针。 如果低位和高位的名称相等。

我们将使用更新的参数调用相同的函数,以使字符串从两侧收缩一个字符。 如果指针 low 和 high 彼此相遇或它们之间存在单个字符,那么我们已经到达字符串的中间并将其视为回文。

现在,让我们试运行一下字符串“rotor”的代码。 最初,low 为 0,high 为 4。由于第 0 位置的字符('r')等于第 4 位置的字符('r'),我们将进行递归调用,将 low 更新为 low +1 和 high 更新为 high-1。

现在,low 为 1,high 为 3,因为这些位置的字符相等,我们将再次进行递归调用。 现在 low 为 2,high 为 2,它触发了 low 等价于 high 的基本情况,所以我们将返回 true。

我们还可以实现一个递归函数来检查一个整数是否是回文,这是执行此操作的过程。

静态布尔isPalindrome(int n,int rev,int temp){

如果(温度==0)

返回 n==rev;

转=转*10;

返回 isPalindrome(n,rev+temp%10,temp/10);

}

请注意,在上述函数中,最初 n 和 temp 是相同的。 因为最后,我们必须将倒数与初始数进行比较,所以所有的计算都是在同一个变量上执行的。 初始编号不应更改。

另请阅读: Java 项目理念和主题

从世界顶级大学在线学习软件课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论

我们已经理解了回文的定义,遍历了用于检查字符串/数字是否为回文的迭代和递归代码。 我们通过示例示例的干运行了解代码。 既然您已经知道要实现一个代码来检查回文,请尝试使用扫描器类来实现它,并尝试使用 OOP 概念对其进行编码。

如果您想提高您的 Java 技能,您需要掌握这些 Java 项目。 如果您有兴趣了解有关 Java、全栈开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发执行 PG 计划,该计划专为工作专业人士设计,提供 500 多个小时的严格培训,9+项目和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。

什么是回文?

回文句是文学作品、短语、诗句或单词,向后或向前阅读相同。 回文是一种文字游戏,特别是一个单词或短语(句子),它向后或向前读取相同的内容。 回文是一个单词、短语、数字或其他字符序列,它们向后或向前读取相同。 例如,一个人,一个计划,一条运河,巴拿马! 是回文。 有些回文不是单词,例如数字 106601。有些回文是短语,例如女士,我是亚当。

如何准备 Java 面试?

如果你想成为一名 Java 专家,你首先需要确保一些事情是有序的。 首先,您需要具备良好的 Java 语言工作知识。 其次,您应该对 Java API 有很好的了解。 您不必完全掌握 API,但您应该了解可用的内容以及何时使用哪个类。 最后,你需要对Java虚拟机有深入的了解。 例如,您应该能够为一种简单的语言编写解释器。 如果您正在面试编译器开发职位,那么您就摆脱了困境。

如何写出好的Java程序?

用 java 编写程序时的一些最佳实践是: 始终使用“公共类”来启动类。 切勿在类中使用“public static void main”。 切勿在类中使用“this”关键字。 永远不要在方法上使用 'final' 修饰符。 切勿在实例变量上使用“静态”修饰符。 除非绝对必要,否则切勿将变量“公开”。 总是有一个好的命名约定。 永远不要让一个变量超过一个带有数字后缀的字母。 避免用一个以上的词来制造变量。 切勿在方法中使用“this”关键字。 永远不要使用'break'关键字。