zoukankan      html  css  js  c++  java
  • 算法练习之整数反转,回文数

    最近在学习java,但是对于数据操作那部分还是不熟悉

    因此决定找几个简单的算法写,用php和java分别实现

    1.给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

    示例 1:

    输入: 123
    输出: 321
    

     示例 2:

    输入: -123
    输出: -321
    

    示例 3:

    输入: 120
    输出: 21
    

    注意:

    假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

    java

    class Solution {
       public int reverse(int x) {
            int ans = 0;
            int pop = 0;
            while(x != 0) {
                pop = x % 10;
                x /= 10;
                //是否溢出
                if(pop < 0 && ans < (Integer.MIN_VALUE - pop)/10) return 0;
                if(pop > 0 && ans > (Integer.MAX_VALUE - pop)/10) return 0;
    
                ans = ans * 10 + pop;
            }
            return ans;
        }
    }        

    php

    class Solution {
        function reverse($x) {
            $sign = 1;
            if($x<0){
                $sign =-1;
                $x= -$x;
            }
            $rs = 0;
            $mod = 0;
            while($x>9){
                $mod=$x%10;
                $rs = $rs*10+$mod;
                $x = ($x-$mod)/10;
            }
            $rs = $rs*10+$x;
            if($sign==-1){
                $rs = '-'.$rs;
            }
            $rs = (int)$rs;
            //是否溢出
            if(pow(-2,31)<$rs &&$rs <pow(2,31)-1){
                return $rs;
            }
            return 0;
        }
    }

    2.回文数

    判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

    示例 1:

    输入: 121
    输出: true
    

    示例 2:

    输入: -121
    输出: false
    解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
    

    示例 3:

    输入: 10
    输出: false
    解释: 从右向左读, 为 01 。因此它不是一个回文数。

    java

    class Solution {
        public boolean isPalindrome(int x) {
            if(x<0) return false;
            int ans = 0;
            int pop = 0;
            int tmp = x;
            while(tmp != 0) {
                pop = tmp % 10;
                tmp /= 10;
                ans = ans * 10 + pop;
            }
            if(x==ans) return true;
            return false;
        }
    }

    php

    class Solution {
    
        function isPalindrome($x) {
            
            if($x<0) return false;
            $rs = 0;
            $mod = 0;
            $tmp = $x;
            while($tmp!=0){
                $mod=$tmp%10;
                $rs = $rs*10+$mod;
                $tmp = ($tmp-$mod)/10;
            }
            if($rs==$x)return true;
            return false;
        }
    }
  • 相关阅读:
    fedora29 安装mongodb 4.0,6问题记录
    乱花渐入迷人眼------从解决jqueryEasyUI上传插件提交ajax请求谈网页调试
    thinkphp5权限仿制
    基于tornado python pandas和bootstrap上传组件的mongodb数据添加工具
    tornado下pandas ndarray乱试
    一个tornado框架下的文件上传案例
    一例tornado框架下利用python panda对数据进行crud操作
    PHP 基础语法实例及注意事项
    转:github使用教程(重装系统后遇到问题该文章帮我解决了)
    ubuntu同步系统时间命令
  • 原文地址:https://www.cnblogs.com/baby123/p/10856186.html
Copyright © 2011-2022 走看看