Java实验--关于简单字符串回文的递归判断实验
首先题目要求写的是递归的实验,一开始没注意要求,写了非递归的方法。浪费了一些时间,所谓吃一堑长一智。我学习到了以后看实验的时候要认真看实验中的要求,防止再看错。
以下是对此次的实验进行的分析:
1)递归是运用到了栈的思想
2)回文是一段从中间开始倒置的文字,回代的过程中出现不同的符号的时候就说明这段文字不是回文了
根据上面对回文判断的分析,就拿最简单的121来说,要每个字符判断直至2所在的位置,然后依次回代判断前面的1和后面的1的位置(上述的描述就类似于栈的思想)。
有关于栈还有递归其实我并不熟悉,所以此次的实验对我来说算是一次挑战吧。
接下来贴出实验的代码(利用递归实现回文的判断):
package huiwen;
import java.util.Scanner;
public class Huiwen {
public static void main(String arg[])
{
String sz=new String();
Scanner scan=new Scanner(System.in);
while(!sz.equals("-1"))
{
System.out.println("-------------------------------------\n请输入一个字符串判断是不是回文(输入-1结束输出):");
if(scan.hasNext())
{
sz=scan.next();
if(sz.equals("-1"))
break;
}
if(isHuiwen(sz,0)) //给递归一个起点直至字符串的中间,并判断中途有没有不等的情况,如果出现中途不等返回false,反之返回true
System.out.println("该字符串是回文\n");
else System.out.println("该字符串不是回文\n");
}
scan.close();
System.out.println("结束判断");
}
public static boolean isHuiwen(String s,int n)
{
int num=s.length();
if(num/2!=n)
{
if(isHuiwen(s,n+1))
{
if(s.charAt(n)==s.charAt(num-n-1))
return true;
else return false;
}
}
else if(s.charAt(n)==s.charAt(num-n-1))
return true;
return false;
}
}
回文的实验截图,在判断的过程中没有错误。

测试图如上所示
但是实验过程,一开始的时候再写递归的时候出现了一些问题,在调用isHuiwen方法的过程中,出现了一直都显示不是回文的情况。然后我对实验中为何会出现这种错误进行了分析,发现原来在判断的过程中由于在递归调用方法的前面加了一条判断语句,就是本来的num/2!=n错误的写成了num/2==n,这种错误是致命的,说明了我对于递归方面的基础还不行,所以对递归函数还得进一步了解。
Java实验--关于简单字符串回文的递归判断实验的更多相关文章
- Java之递归方法的字符串回文问题
日期:2018.10.12 星期五 博客期:018 题目: 题目分析:本题目因为是要求用递归的,所以大类里就写一个递归方法,在主方法里用字符串调用这个方法就好了!这是大致这个类的框架定位,然后定位我们 ...
- C#进行回文检测,判断字符串是否是回文的代码
下面代码内容是关于C#进行回文检测,判断字符串是否是回文的代码,应该是对各位朋友有些好处. Console.WriteLine("算法1:请输入一个字符串!");string st ...
- Java实现 洛谷 P1015 回文数(N进制回文数)
输入输出样例 输入样例#1: 10 87 输出样例#1: STEP=4 import java.util.Scanner; public class 回文数2 { public static void ...
- Java实现 LeetCode 680 验证回文字符串 Ⅱ(暴力)
680. 验证回文字符串 Ⅱ 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串. 示例 1: 输入: "aba" 输出: True 示例 2: 输入: " ...
- 【2018.07.28】(字符串/回文串)学习Manacher算法小记
主要是应用在回文串啦,原理也理解了老半天,如果没有图片的话,我也看不太懂它的原理 学习的灵感来源来自于:https://segmentfault.com/a/1190000008484167 /* 最 ...
- 纪念逝去的岁月——C/C++字符串回文
判断字符串是否是回文: 1. 输入:hello world dlrow olleh 输出:1 2. 输入:nihao hello 输出:0 代码 #include <stdio.h> #i ...
- Codeforces Gym100543G Virus synthesis 字符串 回文自动机 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/CF-100543G.html 题目传送门 - CF-Gym100543G 题意 你可以对一个字符串进行以下两种操 ...
- 字符串-回文-Manacher算法
http://blog.csdn.net/zzkksunboy/article/details/72600679 https://segmentfault.com/a/1190000008484167 ...
- 【Python】【demo实验32】【回文数的确认】
原题: 我的代码: #!/usr/bin/python # encoding=utf-8 # -*- coding: UTF-8 -*- #判断一个数字是否为回文数 即 12345654321 x = ...
随机推荐
- Oracle PL/SQL 编程手册(SQL大全)
一.SQLPLUS 1引言 SQL命令 以下17个是作为语句开头的关键字: alterdroprevoke auditgrantrollback* commit*inse ...
- GPU、CPU的异同
一.概念 CPU(Center Processing Unit)即中央处理器,GPU(Graphics Processing Unit)即图形处理器. 二.CPU和GPU的相同之处 两者都有总线和外界 ...
- Django 你需要了解的入门操作
创建一个django project (我的版本是1.11.11) django-admin startproject mysite cd mysite 当前目录下会生成mysite的工程,目录结 ...
- json-server && axios
json-server && axios vue2.0项目实战(3)使用axios发送请求 https://www.cnblogs.com/zhouyangla/p/6753673.h ...
- 尺取法 || emmmm
给定两个上升的数组,一个数组任取一个数,求两个数差的min 尺取法emm 也不知道对不对 #include <stdio.h> #include <stdlib.h> #def ...
- Native.js示例汇总
Native.js虽然强大和开放,但很多web开发者因为不熟悉原生API而难以独立完成.这篇帖子的目的就是汇总各种写好的NJS代码,方便web开发者.众人拾柴火焰高,有能力的开发者多多提交NJS代码, ...
- scrapy example
scrapy example scrapy with pycharm import win32api 出现ImportError: DLL load failed 错误的解决方法 pip instal ...
- bzoj 3555 企鹅QQ
https://www.lydsy.com/JudgeOnline/problem.php?id=3555 枚举每一位字符,计算字符两侧的哈希值,然后进行比较,用map或排序记录出与其相同的字符串数量 ...
- java反编译工具jad
下好以后解压就可以用了,软件就只有一个exe文件和一个帮助文件.在众多的JAVA反编译工具中,有几种非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:FrontEnd Plus.mDeJav ...
- mysql单实例多库与多实例单库
一.单实例多库: 一个mysql实例,创建多个数据目录. 规划: 实例路径:/usr/local/mysql 数据目录路径: (1)/usr/local/mysql/data (2)/usr/loca ...