Java之递归方法的字符串回文问题
日期:2018.10.12
星期五
博客期:018
题目:
题目分析:本题目因为是要求用递归的,所以大类里就写一个递归方法,在主方法里用字符串调用这个方法就好了!这是大致这个类的框架定位,然后定位我们的递归方法!方法首先分为由判断分为递归域和执行域,一开始我的判断条件是输入的String类型的数据str与""(空串)相比相等!然后return true;递归域写起始字符与末尾字符是否相等,不等return false;相等就return 递归方法(参数为减去起始字符与末尾字符后的字符串),这就存在一定的问题——就是当字符串str的长度为奇数时,如”abtItba“,此程序无法继续执行!因为最后执行到返回字符串为"I",在删除的时候就会因为删两次,而第二次已经是空串,进而报错!于是,我便更改最初的判断条件为 str和""相等 或者 str.length==1时 return true;就可以了。
解决代码:
//如下为判断字符串是否回文的程序
package madeby11; public class Palindrome {
public boolean Test(String x){
if(x.compareTo("")==0||x.length()==1)
{
return true;
}
else
{
StringBuffer sb = new StringBuffer(x);
char t1,t2;
int temp = sb.length();
t1 = sb.charAt(0);
t2 = sb.charAt(temp-1);
sb.deleteCharAt(temp-1);
sb.deleteCharAt(0);
if(t1==t2)
return Test(sb.toString());
else
return false;
}
}
public static void main(String[] args) {
Palindrome p = new Palindrome();
String str = "SystemmetsyS";
System.out.println("Does the \""+str+"\" palindrome ?");
if(p.Test(str))
System.out.println("Yes!");
else
System.out.println("No!");
}
}
解决截图:
Java之递归方法的字符串回文问题的更多相关文章
- Java实验--关于简单字符串回文的递归判断实验
首先题目要求写的是递归的实验,一开始没注意要求,写了非递归的方法.浪费了一些时间,所谓吃一堑长一智.我学习到了以后看实验的时候要认真看实验中的要求,防止再看错. 以下是对此次的实验进行的分析: 1)递 ...
- 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: 输入: " ...
- 纪念逝去的岁月——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 ...
- 【2018.07.28】(字符串/回文串)学习Manacher算法小记
主要是应用在回文串啦,原理也理解了老半天,如果没有图片的话,我也看不太懂它的原理 学习的灵感来源来自于:https://segmentfault.com/a/1190000008484167 /* 最 ...
- Java算法练习——最长回文子串
题目链接 题目描述 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1 输入: "babad" 输出: "bab" ...
- Java实现 LeetCode 214 最短回文串
214. 最短回文串 给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串.找到并返回可以用这种方式转换的最短回文串. 示例 1: 输入: "aacecaaa" 输出 ...
随机推荐
- ASLP Kaldi
ASLP(Audio, Speech and Language Processing Group,音频.语音和语言处理组)位于西北工业大学,隶属于陕西省语音和图像信息处理重点实验室(SAIIP). A ...
- Kafka思维导图
- python 多线程小方法
import time from multiprocessing import Process, Lock, JoinableQueue from multiprocessing import Sem ...
- proxysql 系列 ~ 高可用架构
一 整体架构二 proxysql层 proxysql+keepalived对外提供vip 1 这里有一点要注意,虽然keepalived有脑裂危险,但是对于向proxysql这种无状态中 ...
- [转] 解决Driver/library version mismatch
跑模型 torch.cuda.is_available()返回 False nvidia-smi返回:Failed to initialize NVML: Driver/library version ...
- SpringMVC中请求路径参数使用正则表达式
@GetMapping("/user/{id:\\d+}") //使用正则指定Id为数字 public User getInfo(@PathVariable String id){ ...
- Centos7.5 VMtools的安装与卸载
一.安装 1.自带tools: 选择VMware工具栏 => 虚拟机 => 安装VMtools 2.挂载光驱 3.tar -zxvf VMwareTools-10.3.2-9925305 ...
- 20165231 2017-2018-2 《Java程序设计》第7周学习总结
教材学习内容总结 第十一章 MySQL数据库管理系统,简称MySQL,是世界上最流行的开源数据库管理系统,其社区版(MySQL Community Edition)是最流行的免费下载的开源数据库管理系 ...
- Python笔记 【无序】 【一】
----------- r'原始数据' 为了输入[c:\n\d\r\] 代码: ...
- 自动配置redis主从和哨兵
redis shell 每次创建redis主从和哨兵服务,文件夹要复制好几个,配置文件改一大堆.繁琐还容易出错,就想通过shell脚本自动帮我配置好端口以及文件,下面就是脚本内容: redis-to ...