每周一道算法题(六)

作者: CrazySteven | 来源:发表于2017-04-22 10:44 被阅读504次

今天的题目很简单,难度级别也是"Easy",所以就添加了一些附加条件...

题目:传入一个整数int x,判断x是否是回文数(就是从左往右看和从右往左看是一样的)

注:

  • 不能额外开辟空间(不能使用malloc,calloc等)
  • 负数不是回文数
  • 考虑溢出问题

老样子,上代码

bool isPalindrome(int x) {
    //负数,返回false
    if (x < 0) return false;
    //大于0的1位数本身就是回文数
    if (x < 10) return true;
    //sum为从右往左记录,temp临时变量
    int sum = 0,temp = x;
    //当temp不为0时继续循环
    while (temp) {
        //处理越界
        if (sum >= (INT32_MAX / 10))  return false;
        //记录
        sum = sum * 10 +temp%10;
        temp /= 10;
    }
    //如果从右往左看等于从左往右看,就是回文数
    if (sum == x) return true;
    else return false;
}

方法有很多,比如还可以首尾直接比较,但首尾直接比较要通过log10()函数获取位数,有兴趣的小伙伴可以写下比比效率。

版权声明:本文为 Crazy Steven 原创出品,欢迎转载,转载时请注明出处!

相关文章

  • ARTS第三周(2018-12-16)

    1.Algorithm:每周至少做一个 leetcode 的算法题 第一道算法题:https://leetcode...

  • ARTS(09)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(05)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(07)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(10)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(02)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(03)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(08)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(06)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

  • ARTS(04)

    什么是 ARTS? 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习 ...

网友评论

    本文标题:每周一道算法题(六)

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