上一题:LeetCode第8题:string-to-integer-atoi(C语言)
思路:创建一个int型数组order,将输入整数从低位到高位除10取余,即按照个十百千万位顺序存储到数组中,然后分别从数组的左右边界遍历判断是否相等即可。
bool isPalindrome(int x) {
if(x < 0)
return false;
if(x < 10)
return true;
int *order = (int *)malloc(32 * sizeof(int));
int *start = order;
while(1){
*order = (int) x % 10;
x = x / 10;
if(x > 0){
order += 1;
}
else{
break;
}
}
while(start <= order){
if(*start == *order){
start += 1;
order -= 1;
}
else{
return false;
}
}
return true;
}
本系列文章,旨在打造LeetCode题目解题方法,帮助和引导同学们开阔学习算法思路,由于个人能力和精力的局限性,也会参考其他网站的代码和思路,如有侵权,请联系本人删除。
下一题:LeetCode第10题: isMatch(C语言)
网友评论