1. 程式人生 > >LeeCode中StringtoInteger(PHP實現)

LeeCode中StringtoInteger(PHP實現)

<?php
/**
 * Created by PhpStorm.
 * User: jiangyu01
 * Date: 2018/10/1
 * Time: 14:51
 * Title:
 * 實現 atoi,將字串轉為整數
 * 當字串中的第一個非空字元序列不是個有效的整數;或字串為空;或字串僅包含空白字元時,則不進行轉換。
 */

$string = '  -42030  ';         //定義字串變數
/**
 * @param string $string
 * 定義轉換函式
 */
function StringtoInteger(string $string) {
    $up_limit = pow(2,31)-1;        //上限
    $down_limt = -pow(2,31);        //下限
    $string = trim($string);                    //去除字元前後空白字元
    $sign = '';                                 //定義符號變數
    if ($string[0] == '-'){
        $sign = '-';
        $string = substr($string,1);        //如果存在符號則記錄並且擷取除符號外的字元
    }elseif ($string[0] == '+'){
        $sign = '+';
        $string = substr($string,1);
    }
    //判斷去除符號後的字串首位是否是數字
    if (is_numeric(intval($string[0]))){
        $integer =  $sign.intval($string);
        //反轉後範圍判斷
        if (($integer < $down_limt) || ($integer > $up_limit)){
            echo '0';
        }else{
            echo $integer;
        }
    }else{
        echo 0;
    }
}

StringtoInteger($string);