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 中心扩展法 此处,首先枚举出回文 ...
随机推荐
- C#——面对对象之封装、继承、多态的简单理解
一.封装 隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别. 简单来多,就是讲我们所需要的代码打包封装进入一个类里面,便于我们调用,操作.这就是封装. 这样就隔离了具体 ...
- siblings() next() nextAll() nextUntil() prev() prevAll() prevUntil() 在 DOM 树中水平遍历
$(document).ready(function(){ $("h2").siblings(); });拿到h2标签的所有的同级元素什么标签都可以 $(document).rea ...
- vc++如何创建程序-析构函数01
#include<iostream.h>class Point{public: int x; int y; Point() { x=0; y=0; }//构造函数是用来创建函数本身,那么, ...
- JA document的练习
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【udacity】机器学习-决策树
Evernote Export 1.监督学习 我们向系统中输出样本,并且告诉系统样本标签(target),系统用我们给出的不同样本的成功与失败的信息,构建它对成功或失败的因素的理解. 2.分类与回归之 ...
- 【数据分析】算法+Echarts小练
''' 处理逻辑: 按number去处理 先遍历所有的number挨个去找有没有在列表里的,在列表里的拿出另外一个append 把number去除的列表 ''' li = [] with open(r ...
- 自动化测试之firebug、firepath、IDE的使用
1firebug安装-firefox添加组件-firebug 如图 firepath依赖于firebug 展示路径用,安装和firebug一样
- windows电脑配置耳机只有一个耳朵响
也许你在工作,需要一个耳朵听同事的声音,一个耳朵听电脑的音乐,但是又不想另一个耳机头泄露声音,这样就有了想配置只有左/右单个耳机头会响的操作. 那么我们就开始配置吧,我这里以win10为例: 右击桌面 ...
- 【CodeForces 574B】Bear and Three Musketeers
[链接] 我是链接,点我呀:) [题意] [题解] 枚举每一条边(x,y) 然后再枚举y的出度z 看看g[x][z]是否等于1(表示联通) 如果等于1就说明找到了一个三元环,则尝试用它们的出度和-6更 ...
- 洛谷——P1802 5倍经验日
https://www.luogu.org/problem/show?pid=1802#sub 题目背景 现在乐斗有活动了!每打一个人可以获得5倍经验!absi2011却无奈的看着那一些比他等级高的好 ...