Leetcode(1) 判断一个整数是否是回文数。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
解题思路:
1、首先,根据输入数值的符号进行判断,如果为负数,则直接返回false,反之,继续下一步;
2、然后,根据需要倒序,需要获取输入数值的个位数,然后进行逆序表达,再到十位数进行逆序表达,依次类推,直到获取完输入数值的最高位。
3、代码如下:
#include<bits/stdc++.h> //万能头文件
class Solution{
public:
bool isPalindrome(int x){
//首先判断输入值的可行性
if(x < 0)
{
return false;
}
//定义两个变量,用来存放获取输入数值的单个值和逆序表达值
//考虑输入值的上限,输出值会溢出
long long value = 0,y = 0;
int temp = x;
while(temp != 0)
{
value = temp%10;
y = y*10 + value;
temp = temp/10;
//也可以一步到位,for(;x;y=y*10+x%10,x/=10);
}
return x == y;
}
}