LeetCode(PHP)之整數(shù)反轉(zhuǎn)

題目:整數(shù)反轉(zhuǎn)(Reverse Integer)

給出一個(gè) 32 位的有符號整數(shù)抖拴,你需要將這個(gè)整數(shù)中每位上的數(shù)字進(jìn)行反轉(zhuǎn)志鹃。
示例 1:

輸入: 123
輸出: 321

示例 2:

輸入: -123
輸出: -321

示例 3:

輸入: 120
輸出: 21

注意:
假設(shè)我們的環(huán)境只能存儲得下 32 位的有符號整數(shù),則其數(shù)值范圍為 [?231, 231 ? 1]。請根據(jù)這個(gè)假設(shè),如果反轉(zhuǎn)后整數(shù)溢出那么就返回 0。


解法一:

對傳入數(shù)字進(jìn)行取余操作每次彈出最后一位瞎惫,推入變量ret中,每次再對ret進(jìn)行推入時(shí)译株,要先判斷推入后會(huì)不會(huì)溢出瓜喇。

如果 ret =ret * 10 + pop 導(dǎo)致溢出,那么一定有ret >= xMax/10 或 ret <= xMin/10歉糜;
所以ret > xMax/10 或 ret < xMin/10,那么ret = ret* 10 + pop會(huì)溢出乘寒;
rev == xMax/10,那么只要pop > 7匪补,ret = ret * 10 + pop會(huì)溢出伞辛;
rev == xMin/10,那么只要pop < -8夯缺,ret = ret * 10 + pop會(huì)溢出蚤氏;

class Solution {
    /**
     * @param Integer $x
     * @return Integer
     */
    function reverse($x) {
        $ret = 0;
        $xMin = -pow(2, 31);
        $xMax = pow(2, 31) - 1;
        while($x != 0){
            $pop = $x % 10;   //pop為最后一位數(shù)字
            if($ret < $xMin / 10 || ($ret == $xMin/10 && $pop < -8)){
                return 0;
            }
            if($ret > $xMax / 10 || ($ret == $xMax/10 && $pop > 7)){
                return 0;
            }
            $ret = $ret * 10 + $pop; //將最后一位推入到的第一位
            $x = (int)($x / 10); //彈出最后一位數(shù)字
        }
        return $ret;
    }
}

解法二:

轉(zhuǎn)換成字符串,用php函數(shù)strrev反轉(zhuǎn)字符串踊兜,然后判斷是否溢出竿滨。

class Solution {
    /**
     * @param Integer $x
     * @return Integer
     */
    function reverse($x) {
        if($x >= 0){
            $ret = strrev((string)$x);
        }else{
            $ret = -strrev((string)abs($x));
        }
        if($ret > pow(2,31) - 1 || $ret < -pow(2,31)){
            return 0;
        }else{
            return (int)$ret;
        }
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子于游,更是在濱河造成了極大的恐慌毁葱,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贰剥,死亡現(xiàn)場離奇詭異倾剿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蚌成,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門前痘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人笑陈,你說我怎么就攤上這事际度】” “怎么了涵妥?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長坡锡。 經(jīng)常有香客問我蓬网,道長,這世上最難降的妖魔是什么鹉勒? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任帆锋,我火速辦了婚禮,結(jié)果婚禮上禽额,老公的妹妹穿的比我還像新娘锯厢。我一直安慰自己,他們只是感情好脯倒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布实辑。 她就那樣靜靜地躺著,像睡著了一般藻丢。 火紅的嫁衣襯著肌膚如雪剪撬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天悠反,我揣著相機(jī)與錄音残黑,去河邊找鬼。 笑死斋否,一個(gè)胖子當(dāng)著我的面吹牛梨水,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茵臭,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼疫诽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起踊沸,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤歇终,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后逼龟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體评凝,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年腺律,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奕短。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匀钧,死狀恐怖翎碑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情之斯,我是刑警寧澤日杈,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站佑刷,受9級特大地震影響莉擒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瘫絮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一涨冀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧麦萤,春花似錦鹿鳖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至垛孔,卻和暖如春藕甩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背周荐。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工狭莱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人概作。 一個(gè)月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓腋妙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親讯榕。 傳聞我的和親對象是個(gè)殘疾皇子骤素,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容