LeetCode 9. 回文数

£神魔★判官ぃ 2022-11-27 12:17 223阅读 0赞

上一篇博客:LeetCode 7.整数反转

 写在前面:大家好!我是ACfun,我的昵称来自两个单词Acceptedfun。我是一个热爱ACM的蒟蒻。最近萌生了刷LeetCode的想法,所以我打算从LeetCode简单的题目开始做起,攻陷LeetCode。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油,冲鸭!
用知识改变命运,用知识成就未来!加油 (ง •̀o•́)ง (ง •̀o•́)ง

原题链接:LeetCode 9. 回文数

文章目录

  • 题目信息
    • 题目描述
    • 示例
      • 示例 1
      • 示例 2
      • 示例 3
    • 进阶:
  • 题解
    • 解题思路
    • 解题代码
    • 提交情况

题目信息

题目描述

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

示例

示例 1

输入: 121
输出: true

示例 2

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

示例 3

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

进阶:

 你能不将整数转为字符串来解决这个问题吗?

题解

解题思路

 因为负数一定不是回文数,所以在开始的时候我们先判断一下 x 是否为负数,如果为负数那么直接 return false;结束。如果不是负数那么我们将 x 利用 对 10取模 将其每一位数字拆开。然后依次比较对应位置上的数字是否相同,只要遇到不同那么就直接 return false;结束函数,否则就继续进行比较,如果比较完之后还没有出现对应位置数字不相同的情况,那么就 return true;

解题代码

  1. class Solution {
  2. public:
  3. bool isPalindrome(int x) {
  4. int q[100] = { 0};
  5. long n = x, i = 0;
  6. if (n < 0) {
  7. return false;
  8. }
  9. while (n) {
  10. q[i] = n % 10;
  11. n /= 10;
  12. i++;
  13. }
  14. int k = 0;
  15. for (int j = i; j > i / 2; j--) {
  16. if (q[k] != q[i - 1 - k]) return false;
  17. k++;
  18. }
  19. return true;
  20. }
  21. };

提交情况

提交情况


未完待续,持续更新中……
废话少说 上号!

发表评论

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

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

相关阅读

    相关 LeetCode 9

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

    相关 [leetcode]9.

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

    相关 LeetCode 9

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

    相关 LeetCode9 :

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