LeetCode 7. 整数反转
LeetCode 7. 整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0.
知识点:
- strrev(); // 反转
- substr(); // 求子串
- 整型数的字长和平台有关,leetcode 平台的整形是大于 231 次方,所以直接通过比大小来判断溢出
PHP代码
function reverse($x) { // 实现了数字的反转 /* $x = strval($x); if ($x[0] == '-') { $x = substr($x, 1); $ans = '-'; } else { $ans = ''; } $flag = true; for ($i = strlen($x) - 1; $i >= 0; -- $i) { if ($flag and $x[$i] == '0') { continue; } $flag = false; $ans .= $x[$i]; } return empty($ans) ? 0 : $ans; */ $ans = $x >= 0 ? '' : '-'; $ans .= intval(strrev($x)); return ($ans < -2147483648 or $ans > 2147483647) ? 0: $ans; }