• 5.Palindrome Number


    Description:

      Determine whether an integer is a palindrome. Do this without extra space.

    Difficulty: Easy

    palindrome的意思是回数,即数字顺序颠倒后仍和原数字相等的数字。

    引用百度百科的定义:

      设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。

    0-9都是回文数

    解题思路:

      把数字颠倒后与原数字比较是否仍相等

      颠倒数字的处理与之前题目的手法一样

    public:
    bool isPalindrome(int x) {
        int temp=0;
        int x1=x;
        if(x<0) return false;
        if(x==0) return true;
        while(x){
          temp=temp*10+x1%10;
          x1 = x1 / 10;
          }
        if(temp==x)
          return true;
        else
          return false;
      }

    我在solution里发现一个更加快捷的解答,它并不需要全部颠倒,只需要颠倒至数字的中间位置即通过比较大小来实现算饭,摘录如下

    class Solution {

      public: bool isPalindrome(int x){

        if(x<0|| (x!=0 &&x%10==0)) return false;

        int sum=0;

        while(x>sum) {

          sum = sum*10+x%10;

          x = x/10;

        }

        return (x==sum)||(x==sum/10);

      }

    };

  • 相关阅读:
    8) linux安装samba服务器
    7) k8s获取apiversion下面的对应可用资源
    4) cobbler自动安装linux
    3) KVM命令--使用篇(1)
    2) 各种开源环境自动部署脚本
    1) nginx编译安装
    扁平式小清新导航
    互联网公司常用水平导航(二级导航)
    水平导航-三级导航-切换流畅
    简约蓝色系导航(三级导航)
  • 原文地址:https://www.cnblogs.com/sarahp/p/6593663.html
Copyright © 2020-2023  润新知