LeetCode 9. 回文数
上一篇博客:LeetCode 7.整数反转
写在前面:大家好!我是
ACfun
,我的昵称来自两个单词Accepted
和fun
。我是一个热爱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;
解题代码
class Solution {
public:
bool isPalindrome(int x) {
int q[100] = { 0};
long n = x, i = 0;
if (n < 0) {
return false;
}
while (n) {
q[i] = n % 10;
n /= 10;
i++;
}
int k = 0;
for (int j = i; j > i / 2; j--) {
if (q[k] != q[i - 1 - k]) return false;
k++;
}
return true;
}
};
提交情况
未完待续,持续更新中……
还没有评论,来说两句吧...