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实现简单回文算法的更多相关文章

  1. java回文算法

    1987891这个就是回文,判断“1987891”是不是回文? 1 public static boolean isPalindrome(String str) { return str.equals ...

  2. 蓝桥网试题 java 基础练习 回文数

    --------------------------------------------------------------------- 没必要枚举出所有四位数 四位数里是回文的数都有一个特性,是什 ...

  3. Java练习 SDUT-2174_回文时间

    回文时间 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description HH 每天都会熬夜写代码,然后很晚才睡觉,但是每天早晨六点多必 ...

  4. Manacher算法(马拉车)求最长回文子串

    Manacher算法求最长回文字串 算法思路 按照惯例((・◇・)?),这里只是对算法的一些大体思路做一个描述,因为找到了相当好理解的博客可以参考(算法细节见参考文章). 一般而言,我们的判断回文算法 ...

  5. LeetCode(5):最长回文子串

    Medium! 题目描述: 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 长度最长为1000. 示例: 输入: "babad" 输出: "bab&quo ...

  6. HDU 3613 Best Reward ( 拓展KMP求回文串 || Manacher )

    题意 : 给个字符串S,要把S分成两段T1,T2,每个字母都有一个对应的价值,如果T1,T2是回文串,那么他们就会有一个价值,这个价值是这个串的所有字母价值之和,如果不是回文串,那么这串价值就为0.问 ...

  7. Java判断回文数算法简单实现

    好久没写java的代码了, 今天闲来无事写段java的代码,算是为新的一年磨磨刀,开个头,算法是Java判断回文数算法简单实现,基本思想是利用字符串对应位置比较,如果所有可能位置都满足要求,则输入的是 ...

  8. Java 简单算法--打印回文数字

    package cn.magicdu.algorithm; public class CircleNumber { public static void main(String[] args) { f ...

  9. 算法笔记_032:最长回文串(Java)

    目录 1 问题描述 2 解决方案 2.1 中心扩展法 2.2 Manacher算法   1 问题描述 给定一个字符串,求它的最长回文子串的长度. 2 解决方案 2.1 中心扩展法 此处,首先枚举出回文 ...

随机推荐

  1. 经典C/S服务器模型之守护进程

    linux编程-守护进程编写 守护进程(Daemon)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程是一种很有用的进程. Linux的大多数服务 ...

  2. [翻译]内存一致性模型 --- memory consistency model

    I will just give the analogy with which I understand memory consistency models (or memory models, fo ...

  3. 「Redis 笔记」常用命令

    编号 命令 描述 1 DEL key 此命令删除一个指定键(如果存在). 2 DUMP key 此命令返回存储在指定键的值的序列化版本. 3 EXISTS key 此命令检查键是否存在. 4 EXPI ...

  4. jQuery访问json文件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. ArcGIS Javascript API 加载高德在线地图扩展

    利用ArcGIS JavaScript API加载高德在线地图的扩展 /** * Created by WanderGIS on 2015/7/15. */ define(["dojo/_b ...

  6. Juery实现选项卡

    选项卡是一种很常用的组件.比如3个选项的选项卡,比较笨的一种办法是,把3个状态写成3个独立页面,互相链接.这样做的问题也显而易见,切换的时候url会变.如果是手机端网页,加载慢一点,给人的感觉是不断的 ...

  7. MongoDB_可视化工具Robo 3T

    Robo 3T可以对MongoDB进行可视化操作. Robo 3T安装 官网下载地址:https://robomongo.org/ 进入官网,点击下载,Studio 3T功能更全面,基础功能是免费的, ...

  8. BitmapMesh动画

    一.概要 我们经常用到Canvas.drawBitmap方法,却很少用到Canvas.drawBitmapMesh方法.这个方法为我们做图片变形提供了无限可能,同时也对数学功底有较高的要求.下面先看一 ...

  9. 何为DOM对象

    <html> <head> <title>DOM对象</title> <link href="/Content/Site.css&quo ...

  10. IOS - Display a base64 image within a UIImageView: 显示一个base64的图片

    base64字符串(base64String)-存的是image数据NSData* data = [[NSData alloc] initWithBase64EncodedString:base64S ...