力扣每日一题:回文算法

举报
程序员飞鸟 发表于 2022/06/14 20:07:53 2022/06/14
【摘要】 题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例1:输入:x = 121输出:true示例2:输入:x=-121输出: false示例3:输入:x=10输出:false bool isPalindrome(int x){ if(...

题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

示例1:

输入:x = 121

输出:true

示例2:

输入:x=-121

输出: false

示例3:

输入:x=10

输出:false

 bool isPalindrome(int x){
        if(x < 0 || (x % 10 ==0 && x != 0)){
            return false;
        }
        int revertedNumber = 0;
        while(x > revertedNumber){
            revertedNumber = revertedNumber * 10 + x % 10;
            x /=10;
        }
        return x == revertedNumber || x == revertedNumber/10;
}

代码思路:

调用参数x,如果x小于0,返回false,不是回文值,如果x值最后一位数为0,或者x等于0,返回false,也不是回文值,定义reverteNumber为0,当x大于0时,12321值除以10取余值为1,x除以10等于1232,继续循环。
在这里插入图片描述

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。