首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >LeetCode【9】-- 回文数

LeetCode【9】-- 回文数

作者头像
秦怀杂货店
发布于 2022-02-15 14:49:50
发布于 2022-02-15 14:49:50
6660
举报
文章被收录于专栏:技术杂货店技术杂货店
  • 💻 剑指Offer & LeetCode刷题仓库:https://github.com/Damaer/CodeSolution
  • 📒 编程知识库:https://github.com/Damaer/Coding
    • 文档地址:https://damaer.github.io/Coding/#/

题目

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

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

示例 1:

代码语言:javascript
复制
输入:x = 121
输出:true

示例 2:

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

示例 3:

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

示例 4:

代码语言:javascript
复制
输入:x = -101
输出:false

来源:力扣(LeetCode)

思路与解答

这道题的输入是整数类型,首先负数肯定并非回文数,那么对于正数,我们可以使用前面说的整数反转,如果反转出来和原来的数值相等,那么就是回文数,否则不是回文数:

首先定义结果为:sum = 0

用123作为例子,对 10 整除的结果是 12 ,余数是 3 , sum = sum * 10 + 3 = 3

12 对 10 整除的结果是 1,余数是 2,sum = sum * 10 + 2 = 32

1 对 10 整除的结果是 0,余数是 1,sum = sum * 10 + 1 = 321

核心的代码无非是:

代码语言:javascript
复制
sum = sum * 10 + x % 10;
x = x / 10;

123不等于321,所以不是回文数,这道题没有坑点,java代码如下:

代码语言:javascript
复制
class Solution {
    public static boolean isPalindrome(int x) {
        if (x < 0) {
            return false;
        }
        int sum = 0;
        int temp = x;
        while (temp != 0) {
            sum = sum * 10 + temp % 10;
            temp = temp / 10;
        }
        if (sum == x) {
            return true;
        } else {
            return false;
        }
    }
}

C++ 代码如下:

代码语言:javascript
复制
#include<iostream>
#include<string>
using namespace std;
class Solution {
public:
    bool isPalindrome(int x) {
        if (x < 0) {
            return false;
        }
        int sum = 0;
        int temp = x;
        while (temp != 0) {
            sum = sum * 10 + temp % 10;
            temp = temp / 10;
        }
        if (sum == x) {
            return true;
        } else {
            return false;
        }
    }
};
int main(){
    Solution solution;
    cout<< solution.isPalindrome(12321)<<endl;
    return 0;
}

空间复杂度为O(1),时间复杂度为O(logn)。

【作者简介】

秦怀,公众号【秦怀杂货店】作者,技术之路不在一时,山高水长,纵使缓慢,驰而不息。个人写作方向:Java源码解析,JDBC,Mybatis,Spring,Redis,分布式,剑指Offer,LeetCode等,认真写好每一篇文章,不喜欢标题党,不喜欢花里胡哨,大多写系列文章,不能保证我写的都完全正确,但是我保证所写的均经过实践或者查找资料。遗漏或者错误之处,还望指正。

平日时间宝贵,只能使用晚上以及周末时间学习写作 - END -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 题目
  • 思路与解答
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档