美文网首页
LeetCode第9题: isPalindrome(C语言)

LeetCode第9题: isPalindrome(C语言)

作者: 闫品品 | 来源:发表于2019-06-04 14:58 被阅读0次

上一题: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语言)

相关文章

网友评论

      本文标题:LeetCode第9题: isPalindrome(C语言)

      本文链接:https://www.haomeiwen.com/subject/bxolxctx.html