zoukankan      html  css  js  c++  java
  • 【Leetcode-easy】Palindrome Number

    思路:除和求余 取得首位和末尾 比较是否相等。

     1     public boolean isPalindrome(int x){
     2         if(x<0){
     3             return false;
     4         }
     5         int div=1;
     6         while(x/div>=10){
     7             div*=10;
     8         }
     9         while(x!=0){
    10             int left=x/div;
    11             int right=x%10;
    12             if(left!=right){
    13                 return false;
    14             }
    15             x=(x%div)/10;//去掉最高位和最低位
    16             div/=100;
    17         }
    18         return true;
    19     }

    其他思路:http://m.blog.csdn.net/blog/yike1207/44307819博文总结了几种方法(整数反转、转化为字符串处理,取高低位比较)该作者认为上述方法都用到了额外的存储空间,不用额外的存储空间一种方法是通过递归,并修改引用参数值。

     1 bool isPalindrome(int x, int &y) {   
     2   // y为必须为引用和指针型可改变的变量
     3   if (x < 0) return false;
     4   if (x == 0) return true;
     5   if (isPalindrome(x/10, y) && (x%10 == y%10)) {
     6     // 每次执行到 x%10 == y%10 的时候 x 为前i位,y表示前(n+1-i)位
     7     y /= 10;               
     8     return true;
     9   } else {
    10     return false;
    11   }
    12 }
    13 bool isPalindrome(int x) {
    14   return isPalindrome(x, x);
    15 }
  • 相关阅读:
    《鱼嘤嘤小分队》第一次作业:项目选题
    第一次博客作业
    csp 201709-2 优先队列模拟
    csp 201403-2
    csp 201809-2 买菜
    JavaScript中伪协议
    修改placeholder的样式
    jQuery对象与DOM对象之间的转换方法
    a的样式
    Guid.NewGuid() 和 new Guid()的区别
  • 原文地址:https://www.cnblogs.com/scecit/p/4975666.html
Copyright © 2011-2022 走看看