1、题目

使用递归方式判断某个字串是否是回文( palindrome )

“回文”是指正着读、反着读都一样的句子。比如“我是谁是我”
使用递归算法检测回文的算法描述如下:
A single or zero-character string is a palindrome.
Any other string is a palindrome if the first and last characters are the same, and the string that remains, excepting those characters, is a palindrome.

2、程序源代码

import java.util.Scanner;
public class palindrome {
public static boolean deside(String s,int i) {//判断是否是回文串的函数
 if(s.charAt(0) == s.charAt(s.length() - 1)){//判断第一个字符和最后一个字符是否相等,包括长度为1,2的字符串
        if(s.length() > 2){//当长度为2以上时的情况
            return deside(s.substring(i+1,s.length()-1),0);//substring函数将字符串的首尾去掉,进行第二次判断
        }else return true;//返回true
    }else return false;//不满足条件返回false

public static void main(String[] args) {//主方法
 Scanner sc= new Scanner(System.in);
 String a = sc.nextLine();//输入字符串
 if(deside(a,0)){
        System.out.println("字符串 " + a + "是回文串");//值为真输出是回文串
    }else{
        System.out.println("字符串 " + a +"不是回文串");//值为假输出不是回文串
    }
    sc.close();//释放空间
}
}
3、设计思路:
利用递归实现回文串的判断,而回文串的定义是正着念反着念都是一样的,所以就能想出来判断方法,即第一个和最后一个字符相等,第2个和第n-1个字符相等,当第二次判断的时候,可以用substring分割字符串,获得删除首尾字符的新字符串,然后再次进行判断,但是中间可能剩一个或者两个,如果在判断就会更加麻烦,因此可以直接用(s.charAt(0) == s.charAt(s.length() - 1)判断,当剩一个字符的时候,也满足条件,当条件全部满足返回true,递归的时候满足条件,调用参数为新字符串的本身函数,一直到满足条件,输出true,否则输出false,并在主方法中输出是否为回文串,并且将判断的方法定义为boolean型,配合主方法进行输出。
4、运行截图:

5编程总结:要了解charAt(),substring()等方法的应用,并且在应用递归的时候,要清楚递归的条件,结束条件,并且要对方法的类型有深刻的了解,并不是void用的多就都是void,方法的类型选择是根据实际情况来判断的,不是想写什么就写什么,看哪个用的多就用哪个。

2019.9.23JAVA课堂测试的更多相关文章

  1. 课堂测试_WEB界面链接数据库

    课堂测试_WEB界面链接数据库 一,题目: 一. 考试要求: 1登录账号:要求由6到12位字母.数字.下划线组成,只有字母可以开头:(1分) 2登录密码:要求显示“• ”或“*”表示输入位数,密码要求 ...

  2. 耿丹CS16-2班课堂测试作业汇总

    Deadline: 2016-11-01 11:59 作业内容 课堂测试作业总结 00.题目得5分,多半扣在格式上,有些同学代码写得很过分,已经很仁慈对待,同学们珍惜之: 01.界面设计得分不好,换行 ...

  3. 课堂测试ch06

    课堂测试ch06 下面代码中,对数组x填充后,采用直接映射高速缓存,所有对x和y引用的命中率为(D) A. 1 B. 1/4 C. 1/2 D. 3/4 解析:在填充了之后,对于x和y数组,只有在引用 ...

  4. 20155306 2017-2018-1《信息安全系统设计》第二周课堂测试以及myod的实现

    20155306 2017-2018-1<信息安全系统设计>第二周课堂测试以及myod的实现 第二周课堂测验: (注:前两项在课堂已提交,在此不做详解) 第一项: 每个.c一个文件,每个. ...

  5. 『2019/3/19 USACO测试 反思与总结』

    2019/3/8 USACO测试 这是第三次考试了,不过这一次没有上一次考得好,也算是比较失误的,有一道题思路对但是写挂了. 还是看一下试题安排: 题号 试题分组 考察算法 思维难度 代码难度 1 银 ...

  6. 『2019/3/8 USACO测试 反思与总结』

    2019/3/8 USACO测试 这一次是到高中的第一次考试,考得不太好,原因有很多. 先看一下试题安排: 题号 试题分组 考察算法 思维难度 代码难度 1 金组\(T1\) 建图+最短路 ★★★ ★ ...

  7. 课堂测试——jsp登录界面设计

    实现结果:在login.jsp页面提交用户名和密码(可以验证是否为空),点击登录跳转到loginResult.jsp页面进行验证并显示结果 JSP + JDBC + MySQL login.jsp 设 ...

  8. 20172306 2018-2019《Java程序设计与数据结构课堂测试补充报告》

    学号 2017-2018-2 <程序设计与数据结构>课堂测试补充报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 刘辰 学号:20172306 实验教师:王志强 必 ...

  9. 20175316盛茂淞 《java程序设计》第三周课堂测试错题总结

    20175316盛茂淞 <java程序设计>第三周课堂测试错题总结 出现问题 错题总结 题目1 在Ubuntu中用自己的有位学号建一个文件,教材p87 Example4_15 1. 修改代 ...

随机推荐

  1. hive udf编程教程

    hive udf编程教程 https://blog.csdn.net/u010376788/article/details/50532166

  2. WebMagic 抓取图片并保存至本地

    1.近期接触到java 爬虫,开源的爬虫框架有很多,其中WebMagic 是国产的,文档也是中文的,网上资料很多,便于学习,功能强大,可以在很短时间内实现一个简单的网络爬虫.具体可参考官网 http: ...

  3. [转帖]Linux网络管理员不得不了解的系统目录/proc/sys/net/(网络配置)

    Linux网络管理员不得不了解的系统目录/proc/sys/net/(网络配置) https://blog.csdn.net/u013485792/article/details/76416836 需 ...

  4. array_chunk的用法和php操作大数据

    一.array_chunk() 函数 二.php操作大数据 1.在操作大数量数据与数据库交互时,比如插入大量数据,db就会报错,这时可以把原本的数据用array_chunk分隔成几个数组块,再循环插入 ...

  5. mybatis中foreach的用法以及特殊的情况的用法

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separator,close. ...

  6. vue的v-model指令原理分析

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. php前端做过滤校验

    http://www./test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E 以上的 URL 中,将被解析为如下代码并执行: < ...

  8. Linux上安装JDK1.8,tomcat9,以及mysql8的步骤

    (该篇是在centos7上安装JDK1.8.0_201  tomcat9.0.16 和 mysql8.0.15) 一.安装JDK 方式一 1.首先,下载JDK(链接http://www.oracle. ...

  9. k8s+docker+proget 镜像制作

    安装proget 1 首先在k8s上运行proget的数据库配置有个注意点:要根据proget官网要求的sql server排序方式建数据库,不然数据保存的时候会报错 2 proget运行起来后,默认 ...

  10. Scala Option 从官方DOC解析

    Represents optional values. Instances of Option are either an instance of scala.Some or the object N ...