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 中心扩展法 此处,首先枚举出回文 ... 
随机推荐
- java RPC系列之二  HTTPINVOKER
			java RPC系列之二 HTTPINVOKER 一.java RPC简单的汇总 java的RPC得到技术,基本包含以下几个,分别是:RMI(远程方法调用) .Caucho的Hessian 和 Bu ... 
- Win10 UWP Tile Generator
			图标生成器 https://marketplace.visualstudio.com/items?itemName=shenchauhan.UWPTileGenerator 备份地址: http:// ... 
- RabbitMQ学习之集群镜像模式配置
			1.增加负载均衡器 关于负载均衡器,商业的比如F5的BIG-IP,Radware的AppDirector,是硬件架构的产品,可以实现很高的处理能力.但这些产品昂贵的价格会让人止步,所以我们还有软件负载 ... 
- GDI 线段绘制示例程序
			#include <windows.h> #include <strsafe.h> #include <stack> typedef struct tagLINE ... 
- JavaScript链式编程模拟Jquery函数
			<span>Hello,World!</span> <script type="text/javascript"> Jq = function ... 
- ubuntu的LAMP环境搭建
			服务器的搭建,经典组合:LAMP(Linux+Apache+Mysql+PHP) unbuntu源更新:sudo apt update 更新:sudo apt upgrade 安装Apache:sud ... 
- ActiveMQ 整合 spring
			一.添加 jar 包 <dependency> <groupId>org.apache.activemq</groupId> <artifactId>a ... 
- HDU 2439 The Mussels
			The Mussels Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID ... 
- CF789A. Anastasia and pebbles
			/* CF789A. Anastasia and pebbles http://codeforces.com/contest/789/problem/A 水题 题意:有两个背包,每次分别可取k个物品, ... 
- BJFU  质数相关
			/* BJFU 质数相关 http://101.200.220.237/contest/19/problem/116/ 二分图 按质因数奇偶性建立二分图 * * */ #include <cst ... 
