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. [转帖]vim搜索及高亮取消

    vim搜索及高亮取消 https://www.cnblogs.com/soymilk2019/p/10744027.html 哎 竟然一直不知道. 1. 命令模式下,输入:/字符串 比如搜索user, ...

  2. [转帖]SSH命令总结

    SSH命令总结 ssh-keygen ssh-copy-id 等命令自己用过 但是知道的不系统 也知道 转发命令 但是也只是知道一点点... ttps://www.cnblogs.com/chenfa ...

  3. C++对象在继承情况下的内存布局

    1,C++ 中继承是非常重要的一个特性,本节课研究在继承的情形下,C++ 的对象模 型又有什么不同: 2,继承对象模型(最简单的情况下): 1,在 C++ 编译器的内部类可以理解为结构体: 2,子类是 ...

  4. redis 模拟redis server接收信息

    一.实现说明 客户端使用jedis正常set值到redis服务器   2. 模拟服务器接收jedis发送的信息 二.jedis客户端代码 package com.ahd.redis; import r ...

  5. 解决Linux下SSH超时自动断开

    title: 解决Linux下SSH超时自动断开 comments: false date: 2019-08-19 19:22:55 description: Linux 下 SSH 超时自动断开?? ...

  6. php-fpm内存泄漏问题排查

    生产环境内存泄漏问题排查,以下是排查思路   生产环境上有严重的内存溢出问题(红色框所示,正常值应为是 20M 左右)同时系统有 Core Dump 文件产生排查过程中还发现一个现象,如果关闭 OPc ...

  7. 使用vue-cli构建vue项目流程

    下载: nodejs 安装 npm vue-cli -g 生成项目 vue init webpack elementui2 (elementui2是我的项目名称) 进入项目 cd elementui2 ...

  8. React结合AntD的upload组件写头像上传

    upload组件里面action就是调upload接口,获取图片url地址 setImg获取url,点击保存传到后台   action 上传头像方法 //上传头像 changeImg = info = ...

  9. git 查看对比的方法log diff

    git shortlog 默认情况下,git shortlog 把输出按作者名字排序,但你可以传入 -n 选项来按每个作者提交数量排序. 1.有冲突时可以用 git status查看 2.通过git ...

  10. NoSQL与其常见的产品

    一. 什么是NoSQL NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",它是一种非关系型数据库. 二. 为什么要有NoSQL 在现代的计算系统上每 ...