(一)题目描述
给出一个 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 |