Java实现回文判断
JAVA 实现 判断 回文
2023-09-14 08:58:13 时间
1 问题描述
给定一个字符串,如何判断这个字符串是否是回文串?
所谓回文串,是指正读和反读都一样的字符串,如madam、我爱我等。
2 解决方案
解决上述问题,有两种方法可供参考:
(1)从字符串两头往中间扫;
(2)从字符串中间往两头扫。
具体代码如下:
package com.liuzhen.string_1;
import java.util.Scanner;
public class StringPalindrome {
//方法1:两头往中间扫
public boolean IsPalindrome1(String A){
char[] arrayA = A.toCharArray();
int top = 0;
int end = arrayA.length-1;
if(A.equals("") || A.equals(null)) //非法输入
return false;
while(top < end){
if(arrayA[top++] != arrayA[end--])
return false;
}
return true;
}
//方法2:中间往两头扫
public boolean IsPalindrome2(String A){
char[] arrayA = A.toCharArray();
int lenA = arrayA.length;
int mid = lenA/2;
int front; //前半部分
int back; //后半部分
if(lenA % 2 == 0){ //当字符串长度为偶数时
front = mid-1;
back = mid;
}
else{
front = mid -1;
back = mid + 1;
}
if(A.equals("") || A.equals(null))
return false;
while(front >= 0 && back < lenA){
if(arrayA[front--] != arrayA[back++])
return false;
}
return true;
}
public static void main(String[] args){
StringPalindrome test = new StringPalindrome();
Scanner in = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String A = in.nextLine();
if(test.IsPalindrome1(A))
System.out.println("使用方法1判断结果为,输入字符串是回文字符串");
else
System.out.println("使用方法1判断结果为,输入字符串不是回文字符串");
if(test.IsPalindrome2(A))
System.out.println("使用方法2判断结果为,输入字符串是回文字符串");
else
System.out.println("使用方法2判断结果为,输入字符串不是回文字符串");
}
}
运行结果:
请输入一个字符串:
我爱我
使用方法1判断结果为,输入字符串是回文字符串
使用方法2判断结果为,输入字符串是回文字符串
请输入一个字符串:
我爱你
使用方法1判断结果为,输入字符串不是回文字符串
使用方法2判断结果为,输入字符串不是回文字符串
请输入一个字符串:
abba
使用方法1判断结果为,输入字符串是回文字符串
使用方法2判断结果为,输入字符串是回文字符串
相关文章
- Java实现 LeetCode 786 第 K 个最小的素数分数(大小堆)
- Java实现 LeetCode 593 有效的正方形(判断正方形)
- Java实现 LeetCode 593 有效的正方形(判断正方形)
- Java实现 LeetCode 47 全排列 II(二)
- java实现第七届蓝桥杯愤怒小鸟
- java实现第七届蓝桥杯压缩变换
- java实现第七届蓝桥杯煤球数量
- Java实现数字密码发生器
- Java实现判断单联通(强连通缩点+拓扑排序)Going from u to v or from v to u
- Java实现判断单联通(强连通缩点+拓扑排序)Going from u to v or from v to u
- Java实现 蓝桥杯VIP 算法训练 奇偶判断
- Java实现 蓝桥杯VIP 算法训练 判断字符位置
- Java实现 蓝桥杯 历届试题 核桃的数量
- Java实现 蓝桥杯 基础练习 特殊的数字
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
- java多线程 -- 创建线程的第三者方式 实现Callable接口
- 新浪微博WeiboManageAction的java实现
- 基于Java+SpringBoot+Vue企业资源规划系统设计与实现