当前位置: 首页 > 编程日记 > 正文

用递归来判断输入的字符串是否是回文

设计思路:导入Scanner类输入字符串,再将输入的字符串转化为字符数组,然后从字符串左右两侧依次比较字符chu是否相同,若相同递归返回读取的字符个数,若返回字符的个数==输入字符串的长度,则输出该字符串是回文,否则输 出该字符串不是回文

import java.util.Scanner;public class test1 {public static void main(String[] args) {// TODO Auto-generated method stubScanner input = new Scanner(System.in);String a = input.nextLine();char[] temp = a.toCharArray();         int c = fun(0, temp.length-1, temp);if (c == temp.length)System.out.println("该字符串是回文数");elseSystem.out.println("该字符串不是回文数");input.close();}public static int fun(int i, int j, char[] a) {   //定义一个函数判断字符串是否是回文if (j == i)     //字符串长度为奇数return 1;else if(i - j==1)  //字符串长度为偶数return 0;else {if (a[i] == a[j])        //判断两侧的字符是否相同
            {i++;j--;return (2 + fun(i, j, a));  //递归调用函数
            }elsereturn -100;  //如果两侧的字符不,直接结束调用
        }}
}

心得体会:刚开始不会是因为对于递归理解不够透彻,主要对于递归的结束条件不清楚,总是以为要加个break才可以结束调用,后来才明白递归结束就是指函数最后一次调用。

next和nextLine的区别:

next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串。

nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前没有被读取的所有字符,它是可以得到带空格的字符串的。

转载于:https://www.cnblogs.com/weixiao1717/p/11586586.html

相关文章:

js高级程序设计之跨浏览器事件处理

//事件 var EventUtil { //添加事件 addHandler:function (element, type, handler) { //element:DOM对象,type:事件类型,handler:事件函数 if (element.addEventListener) { //是否存在DOM2级方法 element.addEventListener(type, handler, false); } else if (element.attac…

在python中使用关键字define定义函数_python自定义函数def的应用详解

这里是三岁,来和大家唠唠自定义函数,这一个神奇的东西,带大家白话玩转自定义函数 自定义函数,编程里面的精髓! def 自定义函数的必要函数:def 使用方法:def 函数名(参数1,参数2&…

在Win7 + VMware7下安装Xcode 4

我的Mac OS X是在Win7下虚拟机上安装的,我先把xcode_4.0.2_and_ios_sdk_4.3.dmg下载到Win7下某个目录下,然后共享该目录,然后启动Mac OS X,开始安装:1. 找到Win7下xcode_4.0.2_and_ios_sdk_4.3.dmg所在的共享文件夹&am…

plsql误删除数据,提交事务后如何找回?

select *from tbs_rep_template as of timestamp to_timestamp(2018-07-12 14:23:00, yyyy-mm-dd hh24:mi:ss)where tplname like %工业管道定期检验报告%;--其中2018-07-12 14:23:00为:误删数据的大致时刻的提前时间转载于:https://www.cnblogs.com/demon09/p/9300756.html

配置flutter For IOS

https://www.cnblogs.com/lovestarfish/p/10628205.html第一步,下载flutter最新版,解压到自己的目录里: 提供网址:https://flutter.io/setup-macos/ 第二步,终端配置环境,这里我配知道了IOS,安…

Unity3D 镜面反射

原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:【119706192】 本文链接地址: Unity3D 镜面反射 这是官方CharacterCustomization事例中的镜面反射shader。 1.首先需要一个plane当镜子,将代码MirrorReflection.cs文件绑定到镜子…

python后端学什么框架_献给正在学习python的你, 10个最受欢迎的Python开源框架

很多小伙伴在学习wen的时候说,有没有几个常用的框架,好多小伙伴都只说对了其中几个,只有少部分是说正确的,想要了解更多,欢迎大家订阅微信公众号:Python从程序猿到程序员,或者加4913.08659&…

HubbleDotNet 简介 (转)

系统简介 HubbleDotNet 是一个基于.net framework 的开源免费的全文搜索数据库组件。开源协议是 Apache 2.0。HubbleDotNet提供了基于SQL的全文检索接口,使用者只需会操作SQL,就可以很快学会使用HubbleDotNet进行全文检索。 HubbleDotNet可以实现全文索引…

JavaScript夯实基础系列(四):原型

在JavaScript中有六种数据类型:number、string、boolean、null、undefined以及对象,ES6加入了一种新的数据类型symbol。其中对象称为引用类型,其他数据类型称为基础类型。在面向对象编程的语言中,对象一般是由类实例化出来的&…

python中意外缩进是什么意思_Python 的缩进是不是反人类的设计?

前些天,我写了《Python为什么使用缩进来划分代码块?》,文中详细梳理了 Python 采用缩进语法的 8 大原因。我极其喜欢这种简洁优雅的风格,所以对它赞美有加。 然而文章发出去后,非常意外,竟收到了大量的反对…

netstat命令

使用netstat -nap可以查看当前发送和接收队列,Send-Q 很高时表示发送队列太长,可能网络阻塞 转载于:https://www.cnblogs.com/wx170119/p/11606909.html

mysql操作数字名称的schema时字符的逃逸问题

一个简单的问题折腾了好大一会儿,mysql不支持直接操作数字名称的schema,在sql操作时必须做字符逃逸,如: char sql_str[1000]; memset(sql_str, 0x0, 1000); sprintf(sql_str, "CREATE TABLE IF NOT EXIST %s.%s(data_id INT(…

使用XMLSpyDocEditPlugIn2.dll,页面加载失败

维护项目中遇到问题,项目用到XMLSpyDocEditPlugIn2.dll的acticex控件,客户换了其他pc后,不能下载安装acticex控件,所以不能使用此功能。解决方法: 1 下载 XMLSpyDocEditPlugIn2.dll, 路径 http://download.…

[bzoj4562][Haoi2016]食物链_记忆化搜索_动态规划

食物链 bzoj-4562 Haoi-2016 题目大意:给你n个点,m条边的DAG,求所有的满足条件的链,使得每条链的起点是一个入度为0的点,中点是一条出度为0的点。 注释:$1\le n\le 10^5$,$1\le m\le 2*10^5$。 …

Apache源码包在LINUX(CENTOS6.8)中的安装(出现问题及解决)

任务:在CENT6.8系统中安装Apache(版本为:httpd-2.4.41) 前提:由于源码包必须先编译后安装,所以必须先安装编译器:gcc 理论步骤: 1.检测gcc软件包,如果不存在则进行安装。…

append函数_连载|想用Python做自动化测试?函数的参数传递机制及变量作用域

“ 这一节有点难。看不懂没关系。继续往后学,回头再来看。”10.6 函数参数传递的机制10.6.1 值传递与引用传递编程语言的参数传递机制通常有两种:值传递拷贝参数的值,然后传递给函数里的新变量。这样,原变量和新变量之间互相独立&…

PowerDesigner生成数据库

此文中图片不小心被删除了,特重写了PowerDesigner生成数据库修改 一、 用POWERDESIGNER生成数据库 FILE-》NEW 在MODEL NAME中输入模版名 在DBMS中选择要连接的数据库类型 点击确定 确定后出现如下页面 选中工具条面版上的 表按钮 在…

随想_8_Windows_XP_Explorer_错误

最近发现微软的系统的稳定性,还是有待提高啊,这不XP SP3的资源管理器,就犯毛病了,俗话说有图 有真相,各位请看: 大家看,资源管理器左边的导航栏, 就可以发现,里面很多东西…

webpack笔记(6)调试模式

在配置devtool时,webpack给我们提供了四种选项。 source-map:在一个单独文件中产生一个完整且功能完全的文件。这个文件具有最好的source map,但是它会减慢打包速度;cheap-module-source-map:在一个单独的文件中产生一个不带列映射的map,不带…

nicstat命令安装与分析

nicstat安装包下载与安装: wget https://downloads.sourceforge.net/project/nicstat/nicstat-1.95.tar.gz tar -zxvf nicstat-1.95.tar.gz cd nicstat-1.95 cp Makefile.Linux Makefile vi Makefile 后修改 CFLAGS $(COPT) make && make install //…

component是什么接口_【Android每日一题】从Activity创建到View呈现中间发生了什么?...

前言前段时间公司招人,作为面试官,我经常让面试者简述View的绘制流程。他们基本都能讲明白View的测量(measure)、布局(layout)、绘制(draw)等过程。还有少数人会提到DecorView和ViewRootImp的作用。但是,当我继续追问关于Window的内容时&…

wp 删除独立存储空间文件(多级非空文件夹删除)

void DelFile(string unZipFilePath)//unZipFilePath第一次传递的是根目录名 { using (var store IsolatedStorageFile.GetUserStoreForApplication()) { if (store.DirectoryExists(unZipFilePath)) { …

重拾博客小序与杂思

寒假期间,条件所限,不能上网,也不能更新博客。寒假结束,懈怠了两个星期,打算重拾博客,继续更新。这学期(2012年2月到2012年8月)在专业学习上将突出几个集中研究的领域,在…

Ubuntu iso镜像文件写入U盘

Ubuntu iso镜像文件写入U盘 Ubuntu iso镜像文件写入U盘方法 分步指南 命令行输入 usb-creator-gtk如下:3、Device 选择插入的U盘 4、image 选择镜像文件 5、make startup disk

页面布局让footer居页面底部_网站各页面该如何布局关键词优化提升排名?

在网站优化中,最值得关注的一个事情就是关键词的布局,因为关键词的布局直接影响着网站的排名。那么怎样布局关键词才能提高页面和关键词的相关性,并提高网站排名呢?下面一起来看看。一、利用HTML标签布局关键词众所周知&#xff0…

Linux中如何配置IP

与网络相关的文件:1) /etc/sysconfig/network 设置主机名称及能否启动Network2) /etc/sysconfig/network-scripts/ifcfg-eth0设置网卡参数的文件3) /etc/modprobe.conf 开机时用来设置加载内核模块的文件4) /etc/resolv.conf 设置DNS IP(解析服务器&…

《DSP using MATLAB》Problem 5.7

代码&#xff1a; %% %% Output Info about this m-file fprintf(\n***********************************************************\n); fprintf( <DSP using MATLAB> Problem 5.7 \n\n);banner(); %% % -------------------------------------------…

一般将来时语法课教案_「英语语法」一般过去时用法技巧全解

大家好&#xff0c;我是教课蚪英语的张老师&#xff0c;今天我们来学习英语语法100讲的第一课&#xff0c;一般过去时&#xff01;一、首先我们了解一下什么是一般过去时&#xff1f;英语语法1. 概念&#xff1a;描述过去的状态或过去的动作。 在英语中&#xff0c;非现在的以前…

修改Ubuntu的启动logo

修改Ubuntu的启动logo 原文链接: https://my.oschina.net/jmjoy/blog/380262 内容: Plymouth splash screen is the initial splash screen at boot-up.Ubuntu 10.04 uses Plymouth instead of xsplash to manage the fancy boot graphics.If you want something different,y…

每周四十小时,你有多少是在为自己干活?

努力工作为什么&#xff1f;普通人不外乎希望加薪、升职&#xff0c;过的更好。 但是&#xff0c;要想达到这个目标&#xff0c;靠什么&#xff1f; 普通人当然要靠提升自己的能力和经验。 可是&#xff0c;你是不是已经发现&#xff0c;工作最踏实的&#xff0c;却未必取得最好…