美文网首页
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