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实现回文判断的更多相关文章

  1. JAVA关于回文判断的实现

    (一). 设计思想: 首先输入字符串,然后判断长度若长度为0或1则输出TRUE若长度大于一则进行判断, 若符合条件则输出TRUE反之输出FALSE. (二)程序源代码 import java.util ...

  2. 链表回文判断(基于链表反转)—Java实现

    学习数据结构的时候遇到一个经典的回文链表问题 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构. 如果有链表反转的基础,实现链表回文判断就简单的多,如 ...

  3. 算法笔记_030:回文判断(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 给定一个字符串,如何判断这个字符串是否是回文串? 所谓回文串,是指正读和反读都一样的字符串,如madam.我爱我等. 2 解决方案 解决上述问题,有 ...

  4. java基础——回文数判断

    /** * 题目描述: * 有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,这样的数字就称为:回文数字.编写一个函数,判断某数字是否是回文数字. * 要求实现方法: * ...

  5. 单链表的回文判断(O(n)时间复杂度和O(1)的空间复杂度)

    对于单链表来说,判断回文最简单的方法就是遍历链表,将链表中的元素复制到数组中,然后对数组进行判断是否是回文数组,但是这不符合O(1)的空间复杂度. 由于空间复杂度的要求,需要就地操作链表,不能开辟多余 ...

  6. 字符串回文判断 js练习

    / 判断一个字符是否为回文,abcba是回文,. /*function fn2(str){ var str1=''; for(var i=str.length-1;i>=0;i--){ str1 ...

  7. 【数据结构】<栈的应用>回文判断

    通过栈与队列相关内容的学习,我们知道,栈是"先进后出"的线性表,而队列是"先进先出"的线性表.可以通过构造栈与队列来实现在这一算法.将要判断的字符序列依次压栈和 ...

  8. Java 9.回文数

    给你一个整数 x ,如果 x 是一个回文整数,返回 true :否则,返回 false .回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数.    例如,121 是回文,而 123 不是. ...

  9. JAVA求回文数

    Manacher算法(马拉车算法)时间复杂度O(n) 用过中心检测法(就是上面说的O(n2) O(n^2)O(n )的算法)的都知道对于奇数回文串和偶数回文串的处理是不同的,奇数回文串有2n+1 2n ...

随机推荐

  1. 10大Web漏洞扫描工具

    Web scan tool 推荐10大Web漏洞扫描程序 Nikto 这是一个开源的Web服务器扫描程序,它可以对Web服务器的多种项目(包括3500个潜在的危险文件/CGI,以及超过900个服务器版 ...

  2. docker容器与系统时间同步最佳方法

    前言:在Docker容器创建好之后,可能会发现容器时间跟宿主机时间不一致,此时需要同步它们的时间,让容器时间跟宿主机时间保持一致. 一.分析时间不一致的原因 宿主机采用了CST时区,CST应该是指(C ...

  3. 走向统一的 .NET 旅程

    这是微软第一次完全线上举办的Build大会,也是第一次完全属于开发者的大会.几乎所有的新产品都是属于开发者,开发者成为了唯一的主角. 现在的微软比以往任何时候都贴近开发者,重视开发者的作用,为他们打造 ...

  4. 解决yum 问题

    Dependencies Resolved Traceback (most recent call last): File "/usr/bin/yum", line 29, in ...

  5. Django之ORM外部python脚本使用

    python脚本使用django的ROM 如果你想通过自己创建的python文件在django项目中使用django的models,那么就需要调用django的环境: 在总的项目文件夹创建的py文件: ...

  6. 安卓网络编程学习(1)——java原生网络编程(2)

    写在前面 该博客紧接上篇博客:https://www.cnblogs.com/wushenjiang/p/12937531.html,继续学习post请求,带参数的post和get请求以及文件上传与下 ...

  7. SecureCRT VBscript连接指定端口和波特率

    crt.Session.Connect "/Serial COM2 /BAUD 38400" 其它可用选项参考: crt.session.connect options https ...

  8. 2-SAT poj3207将边看做点

    Ikki's Story IV - Panda's Trick Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 10238 ...

  9. 控制层技术:Servlet+reflection、Struts2、Spring MVC三者之间的比较学习

    Servlet Struts2 Spring MVC 处理用户提交的数据 基于MVC设计模式的Web应用程序 是一个框架 是MVC框架 导入servlet包,配置web.xml文件 web.xml & ...

  10. 初探Redis-基础类型List

    Redis存在五种基础类型:字符串(String).列表(List).哈希(Hash).集合(Set).有序集合(Sorted Set).本次列举出List的常用操作. Redis官网:https:/ ...