整数反转

地址:https://leetcode-cn.com/problems/reverse-integer/

“字符串截取”

<?php

/**
 * Created by PhpStorm.
 * User: huahua
 * Date: 2020/3/18
 * Time: 下午6:23
 */

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

示例 1:

输入: 123
输出: 321
示例 2:

输入: -123
输出: -321
示例 3:

输入: 120
输出: 21
注意:

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

    /**
     * @param Integer $x
     * @return Integer
     */
    function reverse($x) {
        if (!is_int($x)) {
            return 0;
        }
        $max = pow(2,31)-1;
        $min = pow(-2,31);
        $flag = true;
        if ($x < 0) {
            $x = -$x;
            $flag = false;
        }
        $len = strlen($x);
        $newStr = '';
        for ($i = $len - 1; $i >= 0; $i--) {
            $newStr.= substr($x, $i, 1);
        }
        $newStr= intval($newStr);
        if (!$flag){
            $newStr= -$newStr;
        }
        if($newStr > $max || $newStr < $min){
            return 0;
        }
        return $newStr;
    }
}

$test = new Solution();
echo($test->reverse(-120));
echo PHP_EOL;

 

posted @ 2020-03-19 16:32  花花妹子。  阅读(95)  评论(0编辑  收藏  举报