LeeCode中ReverseInteger(PHP實現)
阿新 • • 發佈:2018-12-12
<?php /** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/1 * Time: 14:09 * Title: * 給定一個 32 位有符號整數,將整數中的數字進行反轉。 * 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 [−231, 231 − 1]。根據這個假設,如果反轉後的整數溢位,則返回 0 */ $integer = -1200300000; //定義有符號整數 /** * @param int $integer * 反轉函式 */ function ReverseInteger(int $integer) { $up_limit = pow(2,31)-1; //上限 $down_limt = -pow(2,31); //下限 //範圍判斷 if (($integer > $down_limt ) && ($integer < $up_limit)) { $string = strval($integer); //型別轉換 $string = rtrim($string,'0'); //去除最右邊的0 $sign = ''; //定義符號變數 if ($string[0] == '-'){ $sign = '-'; $string = substr($string,1); //如果存在符號則記錄並且擷取除符號外的字元 }elseif ($string[0] == '+'){ $sign = '+'; $string = substr($string,1); } $result = strrev($string); //反轉字串 $result = $sign.$result; //新增符號 $integer = intval($result); //轉換為整形 //反轉後範圍判斷 if (($integer < $down_limt) || ($integer > $up_limit)){ echo '0'; }else{ echo $integer; } }else{ echo '只能處理32 位有符號整數!'; } } ReverseInteger($integer);