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 = ...
随机推荐
- SQL——将两列合并成一列
将两列合并连接成一列,需要注意的是列的格式必须是NVARCHAR或者VARCHAR类型 ), call_uuid, ) +','+agent_code ' PerDate 1 ,980408102 ...
- [Python學習筆記] 使用xlwings 插入註解 (forked 版本)
到今天為止 xlwings 還沒有插入註解的功能 去原始開發者的 Github Pull Requests 他說之前有人有建議要加入這個功能 但他還沒更新~ 如果需要使用 Python 來插入註解的話 ...
- 原创:mysql下载 实战 最强最全的无脑白痴版 给小白的爱
- mysql踩坑记录之limit和sum函数混合使用问题
问题复盘本次复盘会用一个很简单的订单表作为示例. 数据准备订单表建表语句如下(这里偷懒了,使用了自增ID,实际开发中不建议使用自增ID作为订单ID) CREATE TABLE `order` ( `i ...
- Python3简明教程(六)—— 数据结构
简单的来说,数据结构(data structure)是计算机中存储.组织数据的方式.比如我们之前使用过的列表就是一种数据结构,在这里我们还会深入学习它.之前也有简单的介绍. 列表 >>&g ...
- class 写在 import的位置 类的名字第一个字母大写 后面没括号 ES6
class 写在 import的位置 类的名字第一个字母大写 后面没括号 class ObTableDataClass {}或者 const ObTableDataClass = class { in ...
- vueCode 常用代码总结 20190116
<template>props 传参<in-body :mbx="['首页','','']"> props 代码使用<BreadcrumbItem&g ...
- caffe layer注册机制
Caffe内部维护一个注册表用于查找特定Layer对应的工厂函数(Layer Factory的设计用到了设计模式里的工厂模式).Layer_factory的主要作用是负责Layer的注册,已经注册完事 ...
- C/C++语言:科学计数法
主要用来表示浮点数,表达方便 浮点数的科学计数,由三个部分组成: a + E + b a:由一个浮点数组成,如果写成整数,编译器会自动转化为浮点数: E:可以大写E,也可以小写e: b:使用一个十进制 ...
- UVM入坑系列笔记(一)
最近本人在做毕业设计,需要用到UVM搭建验证平台,故在网上查找相关资料,看了一些博客和科普,多少有些收获,记录在这里,以便以后复习查看.以下是本人根据网上学习资料整理的笔记,如果有什么不对的地方欢迎指 ...