Leetcode PHP题解--D132 7. Reverse Integer

码农天地 -
Leetcode PHP题解--D132 7. Reverse Integer
D132 7. Reverse Integer题目链接

7. Reverse Integer

题目分析

这个题目比较简单,就是给你一个-2^31~2^31-1的数字,要你翻转过来。若超出这个范围,需要返回0。

解题思路

比较简单的方法是用strrev函数翻转,也可以用for循环翻转,但要注意符号。

先用是否小于0来判断有没有符号。有的话,需要把第一个元素用array\_shift函数弹出来。或者对给定的数字乘以-1也是一个办法。

接下来把数字用str\_split函数转换成数组,因为我们只需要把数字的前半部分和后半部分对调,所以for的终止条件只要到一半就好了。

最后,要判断是否大于给定的区间。这里要注意,不能用PHP的内置常量PHP\_INT\_MAX和PHP\_INT\_MIN。因为这个是根据当前机器的位数决定的。如果是64位的处理器,它肯定是会大于32位的。

在这里我们直接算出这个数字,作为类常量存储。判断翻转后的结果是否超出范围,超出则返回0即可。

最终代码
<?php
class Solution {

    /**
     * @param Integer $x
     * @return Integer
     */
    const MAX = 2147483647;
    const MIN = -2147483648;
    function reverse($x) {
        $x_arr = str_split($x);
        $symbol = 1;
        if($x < 0){
            $symbol = -1;
            array_shift($x_arr);
        }
        $len = count($x_arr);
        for($i = 0; $i< $len / 2; $i++){
            $temp = $x_arr[$i];
            $x_arr[$i] = $x_arr[$len-$i-1];
            $x_arr[$len-$i-1] = $temp;
        }
        $final = $symbol * implode($x_arr);
        if($final < self::MIN || $final >= self::MAX){
            return 0;
        }
        return $final;
    }
}

若觉得本文章对你有用,欢迎用爱发电资助。

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

leetcodephp

扩展阅读

加个好友,技术交流

1628738909466805.jpg