每周一道算法题(六)

今天的题目很简单,难度级别也是"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 原创出品,欢迎转载,转载时请注明出处!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 上周的算法题太难了,没做出来,哈哈,这周的题目难度级别是“Medium” 题目:给你一个组合,找出全排列中的下一个...
    CrazySteven阅读 4,350评论 0 2
  • 本周的题目有点意思,有点“奥数题”的感觉,难度级别也是"Medium"... 题目:现在有n个非负整数a1,a2,...
    CrazySteven阅读 4,191评论 0 1
  • 这周的题目很简单,因为简单,就写了两种方法,一种是“直接法”,效率较低,一种是“曲线法”,效率高一些,下面来看题目...
    CrazySteven阅读 3,477评论 0 1
  • 本周题目难度级别‘Easy’,使用语言:Python 题目:给你一个集合的规则,让你找出这个集合的第N个数字。 集...
    CrazySteven阅读 4,044评论 3 3
  • 本周题目难度"Medium",使用语言:C 题目:本周的题目和上周的基本上是一样的,就是给你一个组合和一个数,让你...
    CrazySteven阅读 3,671评论 0 2

友情链接更多精彩内容