码迷,mamicode.com
首页 > 其他好文 > 详细

递归方式判断某个字串是否是回文

时间:2017-10-13 10:21:08      阅读:362      评论:0      收藏:0      [点我收藏+]

标签:string   sys   转换   stat   reader   回文数   ade   ima   splay   

1.题目:

技术分享

 

设计思想:首先字符串的输入运用nextInt转换就可以,进行输入即可。这道题目主要是判断是否为回文字符串的那部分,可以将方法定义在主函数中,也可以定义在主函数外进行调用。判断部分:.length()判断长度,.charAt()接收字符,关键是控制进程的算法,因为是回文字符串,所以判断的是对应位置,找到准确的对应位置是关键,

a=str.length()-n; b=str.length()-(a+1);  两者一个从头开始,一个从尾部开始,开始相向而行,两者控制对应位置,下面运用递归算法 一遍又一遍判断对应位置的值是否一样,当两者一样,进行一次确定,只有一个字符就是回文数的判断等。

流程图:

技术分享

程序代码:

//使用递归方式判断某个字串是否是回文
import java.util.*;
public class Huiwenzifuchuan
{
public static void main(String[] args)
{
System.out.println("请输入字符串:");
Scanner reader=new Scanner(System.in);
String str=reader.next();
int n=str.length();//测定字符串的长度,区分数组判断长度的,测定数组的没有括号
int m=huiwen(str,n);
if(m==1)
System.out.println("这个字符串是回文字符串!");
else
System.out.println("这个字符串不是回文字符串!");


}
public static int huiwen(String str,int n)
{
int a,b,j=0;
char c1,c2;
a=str.length()-n;//控制进程 从第一个开始正向移动
b=str.length()-(a+1);//从最后一个开始倒着移动
c1=str.charAt(a);//取字符的函数
c2=str.charAt(b);
if(c1==c2||a==b) j=1;//判断 如果相应的字符一样 J=1,//奇数个字符时 多出来的一个 不用递归判断 直接是回文字符串
if(a!=b&&a<b&&j==1)
huiwen(str,n-1);//递归 判断下一对字符 并且a和b正向判断一次后就不必让a和b走到尽头继续判断 两者达到终点即可
//if(a==b) j=1;//奇数个字符时 多出来的一个 不用递归判断 直接是回文字符串)
return j;
}

}

程序运行截图:

技术分享技术分享

 

递归方式判断某个字串是否是回文

标签:string   sys   转换   stat   reader   回文数   ade   ima   splay   

原文地址:http://www.cnblogs.com/mm20/p/7659006.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!