LeetCode 9 回文数

迷南。 2022-02-14 07:31 338阅读 0赞

题目描述:

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:

  1. 输入: 121
  2. 输出: true

示例 2:

  1. 输入: -121
  2. 输出: false
  3. 解释: 从左向右读, -121 从右向左读, 121- 。因此它不是一个回文数。

示例 3:

  1. 输入: 10
  2. 输出: false
  3. 解释: 从右向左读, 01 。因此它不是一个回文数。

解题思路:

首先,负数和10的倍数不是回文数。

然后,将该数字翻转。

最后,比较翻转之后的数字和原来的数字是否相等,如果相等则是回文数,如果不相等则不是回文数。

  1. class Solution {
  2. public:
  3. bool isPalindrome(int x) {
  4. //判断示例2和示例3这种类型
  5. if(x < 0 || x > 0 && x % 10 == 0) return false;
  6. //处理示例1类型
  7. long originValue = x;
  8. long res = 0;
  9. while(x != 0){
  10. res = res*10+x%10;
  11. x/=10;
  12. }
  13. return originValue == res;
  14. }
  15. };

总结:对于回文类问题一个常用的解决思路就是将其翻转,然后和原来的进行比较,如果相等则表示为回文,如果不相等则不是回文。这种方法只需遍历一次就够,时间复杂度和空间复杂度都是O(n)。是一种不错的方法。

发表评论

表情:
评论列表 (有 0 条评论,338人围观)

还没有评论,来说两句吧...

相关阅读

    相关 LeetCode 9

    判断一个整数是否是回文数,不能使用辅助空间。 说明:回文数是正着读反着读都一样的数字。 思路1:分离出原数的每一位数字,保存在新的数组中,判断数组是否对称。But,不

    相关 [leetcode]9.

    判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 我最开始的解法,把数字转换成字符串,然后比较头尾,时间空间复杂度还过得去。当然反转方

    相关 LeetCode 9

    题目描述: 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例

    相关 LeetCode9 :

    回文数 题目描述 判断一个整数是否是回文数。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例子 <table> <thead>