• LeetCode09——回文数


    LeetCode09

    在这里插入图片描述
    自己写的解,转化为字符串再反转,比较笨。
    在这里插入图片描述

    import java.util.Scanner;
    public class Result01 {
        public static void main(String[] args) {
            System.out.println("请输入整数,我来帮您判断是否是回文数。");
            Scanner scanner = new Scanner(System.in);
            int num = scanner.nextInt();
            ifNumber(num);
        }
        public static boolean ifNumber(int a){
            //负数不可能是回文数
            if (a<0){
                System.out.println(a+"不是回文数。");
                return false;
            }else if (a==0||a<10){//0,1,2,..个位数都是回文数
                System.out.println(a+"是回文数。");
                return true;
            }else {
                //将int转化为字符串
                String str = Integer.toString(a);
                //使用StringBuffer容器的append()添加方法、reverse()反转方法
                StringBuffer stringBuffer = new StringBuffer();
                stringBuffer.append(str);
                //String.valueOf将StringBuffer转化为String 存入 反转后的字符串 reverseStr 中
                String reverseStr = String.valueOf(stringBuffer.reverse());
                if (str.equals(reverseStr)){
                    System.out.println(a+"是回文数。");
                    return true;
                }else {
                    System.out.println(a+"不是是回文数。");
                    return false;
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    官方给的解比较巧妙。
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    public class Result02 {
        public static void main(String[] args) {
            System.out.println("请输入您要判断的数据:");
            Scanner scanner = new Scanner(System.in);
            int a = scanner.nextInt();
            boolean ifNum = ifNumber(a);
            if (ifNum==true){
                System.out.println(a+"是回文数。");
            }else {
                System.out.println(a+"不是回文数");
            }
    
        }
        public static boolean ifNumber(int a){
            //负数不可能是回文数;  除了0以外,其余个位为0的数也都不是回文数,因为首位不可能是0。
            if (a<0||(a%10==0&&a!=0)){
                return false;
            }
            //循环建立反转一半的数字
            int revertedNumber = 0;
            while(a > revertedNumber){
                revertedNumber = revertedNumber * 10 +a % 10;
                a /= 10;
            }
            //针对奇数位和偶数位的数字,分别判断是否为回文。
            return a == revertedNumber || a == revertedNumber/10;
        }
    }
    //算法复杂度——————时间O(log10(N))、空间O(1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
  • 相关阅读:
    【Docker】03-安装redis
    简单但好用:4种Selenium截图方法了解一下!
    软件测试“羊了个羊”我找到了5个Bug,最大BUG:每月一关
    Tauri-Vue3桌面端聊天室|tauri+vite3仿微信|tauri聊天程序EXE
    docker(1) dockfile制作docker java镜像 并启动
    嵌入式启动细节
    【Flink实战】Flink对接Kafka Connetor使用docker部署kafka
    Boot Rom和Bootloader
    Go :验证编译器是否检测到错误的switch语句(附完整源码)
    认识计算机-JavaEE初阶
  • 原文地址:https://blog.csdn.net/weixin_48935611/article/details/133887756