java实现简单回文算法
java实现简单回文算法
算法要求
编写一个程序,判断一个字符串是否为“回文”。回文串:字符串字符从前往后与从后往前一致(中心对称)。
算法思路
首先将字符串等分左右两块,然后依次对称比较每一对字符是否相同
代码实现
import java.util.Scanner;
public class Palindrome {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (!sc.hasNext("###")) {
String data = sc.next();
if (isPalin(data)) {
System.out.println("yes");
} else {
System.out.println("no");
}
}
sc.close();
}
public static boolean isPalin(String data) {
int len = data.length();
for (int i = 0; i < len/2; i++) {
if (data.charAt(i) != data.charAt(len-1-i)) {
return false;
}
}
return true;
}
}
测试样例
abc
no
qwq
yes
abcdcba
yes
小知识
1、equals和==
==运算符执行规则
- 如果是基本数据类型的变量,则比较他们的值
- 如果是引用类型的变量,则比较他们所指向的对象的地址
equals方法执行规则
- 原始的equals方法,比较的是引用类型的变量所指向的对象的地址
- String、Date等类对equals方法进行了重写,此时比较的是所指向的对象的内容
ps:equals方法是基类Object中的方法,用来比较两个对象的引用是否相等,即是否指向同一个对象
探究:浅谈Java中的equals和== https://www.cnblogs.com/dolphin0520/p/3592500.html
2、sc.hasNext()实现多组输入
!sc.hasNext("###") // 匹配 ### 返回true,然后取非运算。即以 ### 作为停止输入的命令
hasNext()和next()效果其实是一样的,系统都会等待输入下一个字符,只是返回值不同,hasNext()返回true,next()返回输入的字符。如果hasNext()有参数则当下一个字符与参数值匹配时才会返回true。
探究:Scanner的hasNext()方法 https://blog.csdn.net/gao_zhennan/article/details/80562548
java实现简单回文算法的更多相关文章
- java回文算法
1987891这个就是回文,判断“1987891”是不是回文? 1 public static boolean isPalindrome(String str) { return str.equals ...
- 蓝桥网试题 java 基础练习 回文数
--------------------------------------------------------------------- 没必要枚举出所有四位数 四位数里是回文的数都有一个特性,是什 ...
- Java练习 SDUT-2174_回文时间
回文时间 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description HH 每天都会熬夜写代码,然后很晚才睡觉,但是每天早晨六点多必 ...
- Manacher算法(马拉车)求最长回文子串
Manacher算法求最长回文字串 算法思路 按照惯例((・◇・)?),这里只是对算法的一些大体思路做一个描述,因为找到了相当好理解的博客可以参考(算法细节见参考文章). 一般而言,我们的判断回文算法 ...
- LeetCode(5):最长回文子串
Medium! 题目描述: 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 长度最长为1000. 示例: 输入: "babad" 输出: "bab&quo ...
- HDU 3613 Best Reward ( 拓展KMP求回文串 || Manacher )
题意 : 给个字符串S,要把S分成两段T1,T2,每个字母都有一个对应的价值,如果T1,T2是回文串,那么他们就会有一个价值,这个价值是这个串的所有字母价值之和,如果不是回文串,那么这串价值就为0.问 ...
- Java判断回文数算法简单实现
好久没写java的代码了, 今天闲来无事写段java的代码,算是为新的一年磨磨刀,开个头,算法是Java判断回文数算法简单实现,基本思想是利用字符串对应位置比较,如果所有可能位置都满足要求,则输入的是 ...
- Java 简单算法--打印回文数字
package cn.magicdu.algorithm; public class CircleNumber { public static void main(String[] args) { f ...
- 算法笔记_032:最长回文串(Java)
目录 1 问题描述 2 解决方案 2.1 中心扩展法 2.2 Manacher算法 1 问题描述 给定一个字符串,求它的最长回文子串的长度. 2 解决方案 2.1 中心扩展法 此处,首先枚举出回文 ...
随机推荐
- OpenCV_Python教程 系列!
这个是作者的总结系列!赞一个! 原文链接:http://blog.csdn.net/sunny2038/article/details/9057415 在python中使用OpenCV:http:// ...
- 页面footer在底部
页脚动态贴在底部需要满足以下两个条件: 当主体的内容高度不超过可视区域高度的时候,页脚贴在页面底部. 当主体的内容高度超过可视区域高度的时候,页脚将按正常布局. 方法一:footer高度固定+绝对定位 ...
- (转) RabbitMQ学习之spring整合发送同步消息(注解实现)
http://blog.csdn.net/zhu_tianwei/article/details/40918477 上一篇文章通过xml配置rabbitmq的rabbitTemplate,本节将使用注 ...
- better-scroll的使用方法,动态创建dom使用better-scroll
移动端经常会用页面高度超过了手机屏幕的高度,但是有没有滚动条的出现这时候就用 better-scroll 这个插件, iscroll 是常用的但是这个组件没有人在维护了,导致很多的问题没有办法解决. ...
- 07 Django组件-中间件
中间件 方式一:函数式:中间件[middleware],也叫钩子方法[钩子函数],hook Django中的中间件是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Djang ...
- JS中的map
定义和用法: map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值. map() 方法按照原始数组元素顺序依次处理元素. 注意: map() 不会对空数组进行检测. 注意: m ...
- linux笔记常用命令
LINUX成长日记 1.本人工作实例:(将一台服务器的数据库复制到另外一台服务器上) scp -r -P 8351 /bak_mysql/sz_b2b2c201705180200.sql root@1 ...
- MySQL笔记5-----索引(覆盖索引等)
1.概念: 覆盖索引:(个人理解)就是包含所有查询记录的索引.当查询量过大时可以采用覆盖索引来进行查询,效率较高. 回表:建立覆盖索引就是避免回表,回表效率会很慢. select查询的字段只有索引列, ...
- 备份/还原mysql数据库
有木有遇到过这种情况?电脑或者服务器需要重装系统?可是你电脑上存着n多个网站的数据库,怎么办?把数据库文件夹拷贝出来,重装系统之后再拷回去?如果你使用了InnoDB引擎,恐怕那样做会出麻烦的,一个一个 ...
- 搞定PHP面试 - 函数知识点整理
一.函数的定义 1. 函数的命名规则 函数名可以包含字母.数字.下划线,不能以数字开头. function Func_1(){ } //合法 function func1(){ } //合法 func ...