周五

问题描述:

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

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

例如,121 是回文,而 123 不是。
 

示例 1:

输入:x = 121
输出:true
示例 2:

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

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

老铁咱就是说先把所有负数排除掉
然后整一个sum作为数字位数,初始值为0
整来一个arr数组预备备
不管x是几位,%10都是他的末尾;把他的末位存进arr
之后把x/10就把他末位去掉了,同时summ+1
一直循环到x/10=0;这时x就是个位数了老铁们!!!
直接存进arr!!!!!
然后就好办啦,利用循环首位一对比,出结果

代码实现:

class Solution {
public:
bool isPalindrome(int x) {
if(x<0){
return false;
}
else{
int sum=0;
int arr[100];
while(x/10!=0){
int m=x%10;
x/=10;
arr[sum]=m;
sum++;
}
arr[sum]=x;
int is=0;
int pd=(sum+1)/2;
for(int i=0;i<pd;i++){
if(arr[i]==arr[sum]){
is++;
sum--;
}
}
if(is==pd){
return true;
}
else{
return false;
}
}
}
};

 

posted @ 2023-05-12 11:58  菜鸟de博客  阅读(28)  评论(0)    收藏  举报