zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    yii2框架安装
    RabbitMq简单应用
    PHP扩展开发--编写一个helloWorld扩展
    node 笔记整理
    js 笔记整理
    JavaScript event loop事件循环 macrotask与microtask
    移动端 缩放插件备份
    vue 笔记备份
    echart 打开新世界的大门
    canvas 笔记整理
  • 原文地址:https://www.cnblogs.com/lanselove/p/10974550.html
Copyright © 2011-2022 走看看