整数反转

示例

给出一个 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) {
        $l = strlen($x);
        $x = (string)$x;
        $y='';
        if ($x == 0) {
            $y = 0;
        } else {
            for($i=$l-1;$i>=0;$i--)
            {
                  $y.=$x[$i];
            }
            if (strpos($x, '-') !== false) {
                $y = preg_replace('/^0+/','',$y);
                $y = '-'.$y;
                $y = rtrim($y, '-');
            } else {
                $y = preg_replace('/^0+/','',$y);
            }
            if ($y > (pow(2,31)-1)) {
                $y = 0;
            } elseif ($y < pow(-2,31)) {
                $y = 0;
            }
        }
        return $y;
    }
}

本文由 一切随风 创作,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论