给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数
是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
示例 2:
- 输入:x = -121
- 输出:false
- 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
复制代码 示例 3:
- 输入:x = 10
- 输出:false
- 解释:从右向左读, 为 01 。因此它不是一个回文数。
复制代码 提示:
**进阶:**你能不将整数转为字符串来办理这个标题吗?
解法一:整数转字符串
很简单的一个想法就是将其转换为字符串然后再逆序比较就好了。
而且标题的进阶提示也提示了。
- class Solution {
- public:
- bool isPalindrome(int x) {
- string num = to_string(x);
- string num_rev = num;
- reverse(num_rev.begin(), num_rev.end());
- return num == num_rev;
- }
- };
复制代码
解法二:
- class Solution {
- public:
- bool isPalindrome(int x) {
- if (x < 0 || (x % 10 == 0 && x != 0)) {
- return false;
- }
- int rev_num = 0;
- while (x > rev_num)
- {
- rev_num = rev_num * 10 + x % 10;
- x /= 10;
- }
-
- return x == rev_num || x == rev_num / 10;
- }
- };
复制代码 }
- return x == rev_num || x == rev_num / 10;
- }
复制代码 };
- 
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |