每日一道leetcode:9. 回文数
LeetCode 每日 回文 一道
2023-06-13 09:17:24 时间
1. 题目(简单)
给你一个整数x
,如果x
是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121 输出:true
示例 2:
输入:x = -121 输出:false 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10 输出:false 解释:从右向左读, 为 01 。因此它不是一个回文数。
提示:
- -231 <= x <= 231 - 1
进阶:你能不将整数转为字符串来解决这个问题吗?
9.2. 题解
回文的定义是按照中心轴翻转后是一致的,前有回文串的判定,那么可以将整数直接转成string
,通过回文的判断翻转前后两者是一致的。
class Solution {
public:
bool isPalindrome(int x) {
// 转成string
string s = to_string(x);
string s1 = s;
reverse(s1.begin(), s1.end());
return s==s1;
}
};
若是不转换成字符串,那就需要将整数中的每一个数位上的数取出,放到翻转后对应的位置上,这里需要注意的是首先对负数判定,直接判定负数为不符合的。
class Solution {
public:
bool isPalindrome(int x) {
if (x < 0) return false;
long y = 0;
int x_tmp = x;
while (x > 0) {
y = y*10+(x%10);
x /= 10;
}
return x_tmp == y;
}
};
注意:这里的y可能会超出int的表示范围,导致提交错误。
相关文章
- LeetCode每日一题-3:回文链表
- LeetCode每日一题-4:合并两个有序链表
- LeetCode每日一题-8:重塑矩阵
- ☆打卡算法☆LeetCode 188. 轮转数组 算法解析
- Leetcode 题目070-爬楼梯
- LeetCode 121. 买卖股票的最佳时机
- LeetCode 657. 机器人能否返回原点
- leetcode #77 in cpp[通俗易懂]
- 包子培训 leetcode solution 2320 Count Number of Ways to Place Houses
- leetcode刷题(123)——63. 不同路径 II
- 【刷题day07】LeetCode(力扣)每日一刷。[876. 链表的中间结点][142. 环形链表 II][121. 买卖股票的最佳时机]
- 【day09】LeetCode(力扣)每日一刷[1640. 能否连接形成数组 ][102. 二叉树的层序遍历 ][704. 二分查找 ]
- 用Js怒刷LeetCode_2023-02-27
- LeetCode - #73 矩阵置零
- js分类刷leetcode.动态规划
- golang刷leetcode:设计LFU缓存结构
- LeetCode-102-二叉树的层序遍历
- Leetcode 矩阵置零
- 每日一道leetcode:1. 两数之和
- 每日一道leetcode:2. 两数相加
- 每日一道leetcode:5. 最长回文子串
- JavaScript刷LeetCode拿offer-双指针技巧(上)_2023-03-15
- 【算法】动态规划 ⑦ ( LeetCode 55. 跳跃游戏 | 算法分析 | 代码示例 )
- 每日一道leetcode:8. 字符串转换整数 (atoi)
- leetcode(4) Median of Two Sorted Arrays详解编程语言