LeetCode 9. 回文数

打印 上一主题 下一主题

主题 1049|帖子 1049|积分 3147

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


  • 例如,121 是回文,而 123 不是。
示例 1:
  1. 输入:x = 121
  2. 输出:true
复制代码
示例 2:
  1. 输入:x = -121
  2. 输出:false
  3. 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
复制代码
示例 3:
  1. 输入:x = 10
  2. 输出:false
  3. 解释:从右向左读, 为 01 。因此它不是一个回文数。
复制代码
提示:


  • -231 <= x <= 231 - 1
**进阶:**你能不将整数转为字符串来办理这个标题吗?
解法一:整数转字符串

很简单的一个想法就是将其转换为字符串然后再逆序比较就好了。
而且标题的进阶提示也提示了。
  1. class Solution {
  2. public:
  3.     bool isPalindrome(int x) {
  4.         string num = to_string(x);
  5.         string num_rev = num;
  6.         reverse(num_rev.begin(), num_rev.end());
  7.         return num == num_rev;
  8.     }
  9. };
复制代码

解法二:

  1. class Solution {
  2. public:
  3.     bool isPalindrome(int x) {
  4.         if (x < 0 || (x % 10 == 0 && x != 0)) {
  5.             return false;
  6.         }
  7.         int rev_num = 0;
  8.         while (x > rev_num)
  9.         {
  10.             rev_num = rev_num * 10 + x % 10;
  11.             x /= 10;
  12.         }
  13.         
  14.         return x == rev_num || x == rev_num / 10;
  15.     }
  16. };
复制代码
}
  1.     return x == rev_num || x == rev_num / 10;
  2. }
复制代码
};
  1. ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7880b0a2e4404e6b8cff449fc0027b32.png#pic_center)
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

钜形不锈钢水箱

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表