翻转整数算法
給出一個(gè) 32 位的有符號(hào)整數(shù),你需要將這個(gè)整數(shù)中每位上的數(shù)字進(jìn)行反轉(zhuǎn)。
注意
假設(shè)我們的環(huán)境只能存儲(chǔ)得下 32 位的有符號(hào)整數(shù),則其數(shù)值范圍為 [?231, 231 ? 1]。請(qǐng)根據(jù)這個(gè)
假設(shè),如果反轉(zhuǎn)后整數(shù)溢出那么就返回 0。
方法一、 翻轉(zhuǎn)字符串方法
如果將數(shù)字看成是有符號(hào)位的字符串,那么我們就能夠通過(guò)使用 JS 提供的字符串方法來(lái)實(shí)現(xiàn)非符 號(hào)部分的翻轉(zhuǎn),又因?yàn)檎麛?shù)的翻轉(zhuǎn)并不影響符號(hào),所以我們最后補(bǔ)充符號(hào),完成算法。
復(fù)雜度分析
方法二 、類似 歐幾里得算法 求解
我們借鑒歐幾里得求最大公約數(shù)的方法來(lái)解題。符號(hào)的處理邏輯同方法一,這里我們通過(guò)模 10 取 到最低位,然后又通過(guò)乘 10 將最低位迭代到最高位,完成翻轉(zhuǎn)。
始取值拼成新的數(shù)
復(fù)雜度分析
總結(jié)