zoukankan      html  css  js  c++  java
  • 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);

      }

    };

  • 相关阅读:
    Oracle 集合类型
    JAVA_SE_笔记整理(反射机制)
    JAVA_SE_笔记整理(GUI)
    JAVA_SE_笔记整理(网络编程)
    JAVA_SE_笔记整理(多线程)
    JAVA_SE_笔记整理(流)
    JAVA_SE_笔记整理(集合三)
    JAVA_SE_笔记整理(集合二)
    JAVA_SE_笔记整理(集合一)
    JAVA_SE_笔记整理(面向对象四(接口,包,内部类))
  • 原文地址:https://www.cnblogs.com/sarahp/p/6593663.html
Copyright © 2011-2022 走看看