首页 > 其他分享 >9_回文数

9_回文数

时间:2024-08-11 21:17:28浏览次数:7  
标签:10 int reversed long num original 回文

9_回文数

【问题描述】

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。(回文数指的是从左到右看和从右向左看完全一样的数字。)

示例:
输入:x = 121
输出:true

解:

【算法设计思想】

主要是利用取模运算,对于一个数x进行x%10的运算即可得到它的最后一位数字,依此把逆转之后的数字进行表示即可。注意使用original_num这个变量来暂存一下x。

【算法描述】

C++:

class Solution {
public:
    bool isPalindrome(int x) {
        if (x < 0)
            return false;

        long long original_num = x;
        long long reversed_num = 0;
        while (x > 0) {
            reversed_num = reversed_num * 10 + x % 10;
            x /= 10;
        }

        return reversed_num == original_num;
    }
};

Java:

class Solution {
    public boolean isPalindrome(int x) {
        if (x < 0)
            return false;

        int original_num = x;
        int reversed_num = 0;

        while (x > 0) {
            reversed_num = reversed_num * 10 + x % 10;
            x = x / 10;
        }

        return original_num == reversed_num;
    }
}

Python:

class Solution:
    def isPalindrome(self, x: int) -> bool:
        if(x < 0):
            return False
        
        original_num = x
        reversed_num = 0
        while(x > 0):
            reversed_num = reversed_num * 10 + x % 10
            x = x // 10

        return original_num == reversed_num

C语言:

bool isPalindrome(int x) {
    if (x < 0)
        return false;

    long long int original_num = x;
    long long int reversed_num = 0;

    while (x > 0) {
        reversed_num = reversed_num * 10 + x % 10;
        x = x / 10;
    }

    return original_num == reversed_num;
}

标签:10,int,reversed,long,num,original,回文
From: https://www.cnblogs.com/zeta186012/p/18353912

相关文章

  • 验证回文串
    如果在将所有大写字符转换为小写字符、并移除所有非字母数字(一开始根本没看到数字两个字)字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。字母和数字都属于字母数字字符。给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 。示例1......
  • 代码随想录day23 || 39 组合总和,40 组合总和2,131 分割回文串
    39组合总和funccombinationSum(candidates[]int,targetint)[][]int{ //思路,组合问题考虑回溯算法,考虑到元素可能重复问题,所以,树的最大深度应该是target/min(candudates)+1 varpath=[]int{} varres=[][]int{} backtracking(target,candidates,&path,&res......
  • 算法力扣刷题记录 六十八【131.分割回文串】
    前言回溯章节第六篇。切割问题。记录六十八【131.分割回文串】。一、题目阅读给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。回文串指字符串从前读和从后读一样。返回s所有可能的分割方案。示例1:输入:s="aab"输出:[["a","a","b"],["aa","b"]]......
  • 代码随想录 day 47 回文子串 | 最长回文子序列
    回文子串回文子串解题思路dp数组的状态是判断以i结尾,j开始的字符串是否为回文,用bool类型存储,之后当i和j的字符串相等时,通过计算它们之间的距离和判断它们之间是否为回文串来进行递归。知识点回文,动态规划心得如果不看题解根本想不到怎么做最长回文子序列最长回文子序列......
  • 代码随想录算法训练营第二十一天| 39. 组合总和, 40.组合总和II, 131.分割回文串
    今天是回溯算法学习的第二天,主要的学习内容包括:1.组合问题的重复使用2.组合问题的去重3.分割问题的处理方法。39.组合总和题目链接:39.组合总和-力扣(LeetCode)这个组合问题的特点是,集合内的元素可以重复使用。与前面组合问题的区别在于,在每一次回溯中,不是从i+1的位置开......
  • 回文日期
    在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。牛牛习惯用8位数字表示一个日期,其中前4位代表年份,接下来2位代表月份,最后2位代表日期。现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多少个真实存在的日期是回文的。例如:•对于2016年1......
  • 力扣131题:分割回文串的 Java 实现
    引言力扣(LeetCode)是一个在线编程平台,提供了大量的编程题目供开发者练习。第131题“分割回文串”是一个有趣的字符串处理问题,要求将一个字符串分割成尽可能多的回文子串。本文将介绍如何使用Java解决这个问题。题目描述给定一个字符串s,请将s分割成尽可能多的回文子......
  • 代码随想录算法训练营第 23 天 |LeetCode 39. 组合总和 LeetCode 40.组合总和II LeetC
    代码随想录算法训练营Day23代码随想录算法训练营第23天|LeetCode39.组合总和LeetCode40.组合总和IILeetCode131.分割回文串目录代码随想录算法训练营前言LeetCode39.组合总和LeetCode40.组合总和IILeetCode131.分割回文串一、基础1、回溯可以看成N叉树2、去......
  • 回文结构 manacher & PAM 马拉车 & 回文树
    manacher马拉车通过在每个字符间插入一个特殊字符,使得字符串长度为奇数,从而保证每个字符都有中心。在每个中心记录回文串的长度。马拉车的扩展方式和\(Z\)函数类似。都是通过映射之前已经算过的位置,然后尽可能的向右扩展。复杂度\(O(n)\)通常马拉车的题目统计回文串需要与其他......
  • 第四十七天 第九章 动态规划part13 647. 回文子串 516.最长回文子序列
    647.回文子串 dp和双指针。dp[i][j]的含义:表示区间范围[i,j](注意是左闭右闭)的子串是否是回文子串,如果是dp[i][j]为true,否则为false。在确定递推公式时,就要分析如下几种情况。整体上是两种,就是s[i]与s[j]相等,s[i]与s[j]不相等这两种。当s[i]与s[j]不相等,那没啥好说的......