首页 > 其他分享 >力扣刷題---回文數 擊敗100%用戶的解法

力扣刷題---回文數 擊敗100%用戶的解法

时间:2024-06-01 16:33:31浏览次数:15  
标签:我們 10 100% 擊敗 --- 拼接 num 數字 回文

題目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

回文数

是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

  • 例如,121 是回文,而 123 不是。

示例 1:

输入:x = 121
输出:true

示例 2:

输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:

输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。

此題就是得到每個位置的數字,然後將其拼接與原數進行比較即可判斷是否為回文數。難點在於取出每個位置的數,下面是一種較為巧妙的取數方法。

思路:我們先對數據除10取餘(%10),即可得到個位的數字,然後再進行除操作( /10),去掉所給數據個位的數字,再對數字拼接到最左邊,然後下一次我們再按照以上操作,就可以得到十位的數,以此反復,我們就可以得到數據每個位置的數字了,然後進行拼接即可進行比較判斷是否為回文數。

        這裡有個難點就是,我們如何得到拼接後的數據了,如果是乘10,乘100的這樣子去拼接,會顯得比較複雜,但也是能做。我們這裡先定義了一個變量num用於記錄拼接後的數據,令其初始值為0,第一次得到個位數時,我們就令num=num*0+ge。這樣利用循環,就很好的將數字拼接起來了。

擔心小白不理解,我們以1234為例,第一次取得個位的數字4,num=num*10+4=4,第二次我們可以得到3,num=4*10+3=43,第三次可以得到2,num=43*10+2=432,最後就順利得到4321。

下面是實現代碼:

class Solution {

    public boolean isPalindrome(int x) {   

        //設置臨時變量,用於記錄原本的x

        int temp=x;

        //設置變量用於記錄拼接後的數字,方便進行比對

        int num=0;

        //多位數字利用for循環從右往左獲取每一位數字

        while (x!=0&&x>0){

            //從右往左獲取每一個數字

            int ge =x%10; //獲取個位的數字

            //對數據進行處理方便下一次循環取出十位的數字

            x=x/10;   //去掉了個位的數,x減少一位,下一次循環取得的即為十位

            //把當前獲取到的數字拼接到最左邊

            num=num*10 +ge ;

        }

    

        //比較

        if(num==temp&&temp>=0){  //注意負數和不等於0的情況

            return true;

        }else {

            return false;

        }       

    }

}

标签:我們,10,100%,擊敗,---,拼接,num,數字,回文
From: https://blog.csdn.net/qq_59611575/article/details/139375096

相关文章

  • 《童年》-- 罗大佑
    池塘边的榕树上,知了在声声地叫着夏天,操场边的秋千上,只有蝴蝶儿停在上面。黑板上老师的粉笔,还在拼命唧唧喳喳写个不停,等待着下课,等待着放学,等待游戏的童年。 福利社里面什么都有,就是口袋里没有半毛钱,诸葛四郎和魔鬼党,到底谁抢到那支宝剑。隔壁班的那个女孩,怎么还没经过我的......
  • 高精度-高精度(信息学奥赛1169)
    #include<iostream>#include<cmath>#include<vector>usingnamespacestd;intmain(){stringa,b;cin>>a>>b;vector<int>x,y,sum;for(inti=a.size()-1;i>=0;i--){x.push_back(a[i]-'0&#......
  • 全开源源码---小红书卡片-跳转微信-自动回复跳转卡片-商品卡片-发私信-发群聊-安全导
    做小红书的人都知道小红书的用户商业价值非常高,消费能力很强,很多做高客单产品的都想从小红书平台上引流到私域成交,但是都会遇到账号违规、被封的问题,因为小红书的平台是所有平台里对引流导流最严的。不允许留公众号、手机号、微信号等联系方式,一旦被发现就会面临封禁等处罚。......
  • 开源源码---小红书卡片-跳转微信-自动回复跳转卡片-商品卡片-发私信-发群聊-安全导流
     做小红书的人都知道小红书的用户商业价值非常高,消费能力很强,很多做高客单产品的都想从小红书平台上引流到私域成交,但是都会遇到账号违规、被封的问题,因为小红书的平台是所有平台里对引流导流最严的。不允许留公众号、手机号、微信号等联系方式,一旦被发现就会面临封禁等处罚。......
  • 宝塔Linux面板-Docker管理(2024详解)
    上一篇文章《宝塔Linux可视化运维面板-详细教程2024》,详细介绍了宝塔Linux面板的详细安装和配置方法。本文详细介绍使用Linux面板管理服务器Docker环境。目录1、安装Docker1.1在线安装​编辑 1.2手动安装1.3运行状态1.4镜像加速2应用商店 3总览 4容器4.1......
  • 宝塔Linux可视化运维面板-详细教程2024
    生产环境的Web服务器多数都是Linux操作系统。包括云服务器在内,都是通过命令行进行服务器的运维和管理。本文详细介绍如何通过宝塔面板实现可视化服务器管理。目录1什么是宝塔面板2Linux面板安装3面板使用3.1登录3.2绑定账号 3.3安装服务器环境套件(可选)3.4软件......
  • Go-知识并发控制Context
    Go-知识并发控制Context1.介绍2.实现原理2.1接口定义2.2Deadline()2.3Done()2.4Err()2.5Value()3.空context4.cancelCtx4.1Done()4.2Err()4.3cancel()4.4WithCancel4.5例子4.6总结5.timerCtx5.1Deadline5.2cancel5.3WithDeadline5.4WithTimeout5.......
  • 使用vxe-table组件,控制台报错:缺少必要的“{0}”参数,这可能会导致出现错误
    这是由于使用vxe表格,给列属性设置type="html"只需要开启存,需要启用column-config.useKey与row-config.useKey就可以了......
  • 自媒体-短视频剧本创作
     一,短视频剧本的创作特点1,内容短小要用少的文字去创作表达内容一个视频时长,在初期控制在1分钟以内,初期建议15-30秒正常演讲,一分钟是200个字一分钟100-300字在撰写文案之前,先明确视频的时长 2,信息密集抖音等短视频平台,追求短平快,追求信息填塞式表达,所以剧本信息要密集剧......
  • 『手撕Vue-CLI』获取下载目录
    开篇在上一篇文章中,简单的对Nue-CLI的代码通过函数柯里化优化了一下,这一次来实现一个获取下载目录的功能。背景在Nue-CLI中,我现在实现的是create指令,这个指令本质就是首先拿到模板名称和版本号之后,然后去进行下载对应的模板,关于下载那么肯定要面临的问题就是如何下载?下......