ARTS第二周

ARTS第二周

Algorithm
给出一个 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) {
        $str = '';
        if($x >= 0) {
            $x = (string) $x;
            $length = strlen($x);
            for($i=$length-1; $i >= 0; $i--) {
                $str .="{$x[$i]}";
            }
            if($str != 0){
            $str = trim($str, 0);
            }
            if($str > pow(2, 31) -1) {
                return 0;
            }
            return $str;
        }else{
            $x = (string)$x;
            $x = str_replace('-', '', $x);
            $length = strlen($x);
            for($i=$length-1; $i >= 0; $i--) {
                $str .= "{$x[$i]}";
            }
            $str = trim($str, 0);
            if($str > (pow(2, 31) -1)) {
                return 0;
            }
            return '-'. $str;
        }
    }
}

下面是leetcode上面跑的最块的写法

class Solution {

    /**
     * @param Integer $x
     * @return Integer
     */
    function reverse($x) {
       $pow = pow(2, 31);       
        $numn = (int)strrev(abs($x));
        $numn=$x < 0 ?-$numn : $numn; 
        if ($numn < -$pow || $numn > $pow-1) {
            $numn = 0;
        }
        return $numn ?? 0;
    }
}

Review

https://medium.com/@dennissmink/laravel-include-your-own-helper-functions-8e744ca66e4f

Tip

phpstorm 选中一段代码 按住 ctrl+alt+l 执行代码格式化

Share

https://github.com/toutiaoio/awesome-architecture
架构师图谱

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据