力扣(LeetCode)算法题解:7.整数反转

简介: 力扣(LeetCode)算法题解:7.整数反转

(一)题目描述

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

【注意】

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

来源:力扣(LeetCode

链接:https://leetcode-cn.com/problems/reverse-integer

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

(二)输入、输出示例

示例 1:

输入: 123
输出: 321

示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

(三)代码实现

方法1(php版):

解题思路

本题比较简单,php本身自带strrev字符反转函数可以实现,但有以下几点需要注意:

1.strrev是对字符进行翻转,如’10’翻转之后是’01’,但题目期待输出为1。

2.既然是整数反转,整数可正可负,需要考虑负号。

3.要考虑翻转之后的数可能出现溢出的问题,需要加判断。

代码实现

class Solution {
    /**
     * @param Integer $x
     * @return Integer
     */
    function reverse($x) {
        if($x >= 0){
            $a = (int)strrev($x);
        }else{
            $a = '-'.(int)strrev(substr($x,1));
        }
        if ($a > (pow(2,31)-1) || $a < pow(-2,31)) {
            return 0;
        }
        return $a;
    }
}

(四)性能分析

运行时间 内存消耗 测试用例通过数/测试用例总数
8ms 14.8 MB 1032/1032


目录
相关文章
|
7天前
|
算法
简记二分算法模板与代码案例:整数二分和浮点数二分
本文介绍了两种算法模板,分别是整数二分和浮点数二分。
11 0
|
11天前
|
算法
【优选算法】——Leetcode——LCR 179. 查找总价格为目标值的两个商品
【优选算法】——Leetcode——LCR 179. 查找总价格为目标值的两个商品
|
11天前
|
算法
【优选算法】——Leetcode——611. 有效三角形的个数
【优选算法】——Leetcode——611. 有效三角形的个数
|
11天前
|
算法 容器
【优选算法】—Leetcode—11—— 盛最多水的容器
【优选算法】—Leetcode—11—— 盛最多水的容器
|
11天前
|
算法
【优选算法】——Leetcode——202—— 快乐数
【优选算法】——Leetcode——202—— 快乐数
【优选算法】——Leetcode——202—— 快乐数
|
11天前
|
算法
[优选算法]——双指针——Leetcode——1089. 复写零
[优选算法]——双指针——Leetcode——1089. 复写零
|
11天前
|
算法
【优选算法】——双指针——Leetcode——283.移动零
【优选算法】——双指针——Leetcode——283.移动零
|
11天前
|
存储 算法
【数据结构与算法 | 基础篇】[数组专题]力扣88
【数据结构与算法 | 基础篇】[数组专题]力扣88
|
11天前
|
算法 索引
【数据结构与算法 | 基础篇】[链表专题]力扣141, 142
【数据结构与算法 | 基础篇】[链表专题]力扣141, 142
|
11天前
|
算法
【数据结构与算法 | 基础篇】[链表专题]力扣82
【数据结构与算法 | 基础篇】[链表专题]力扣82