php整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
数值范围为 [−2的31次方, 2的31次方 − 1],反转后整数溢出返回0
第一种方法:

class Solution {

    /**
     * @param Integer $x
     * @return Integer
     */
    function reverse($x) {
        $prefix = '';
        if ($x<0) {
            $prefix = "-";
            $x = substr($x, 1);
        }
        $x = strrev($x);
        $x = intval($x);    

        if ($x > pow(2,31)-1) {
             return 0;   
        }
        
        return (int)($prefix.$x);
    }
}

第二种方法:

class Solution {

    /**
     * @param Integer $x
     * @return Integer
     */
    function reverse($x) {
        if (!is_int($x)) return 0;
        $tmp = 0;
        $max = pow(2, 31) - 1;
        $min = pow(-2, 31);
        while($x != 0) {
            $tmp = $tmp * 10 + $x % 10;
            $x = ($x-$x%10) / 10;
        }
        var_dump($tmp);
        if ($tmp > $max) return 0;
        if ($tmp < $min) return 0; 
        return $tmp;
    }
}

你可能感兴趣的:(php整数反转)