描述:給出乙個32位的有符號整數,你需要將這個整數中美位上的數字進行反轉
例1:輸入:123 輸出:321
例2:輸入:-123 輸出:-321
例3:輸入:120 輸出:21
注意:假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1] 即 [-2147483648,2147483647]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
解法一思路:將整數去掉符號,轉換為字串,通過遍歷字串進行反轉,需要判斷反轉後的字串整數是否溢位,最後在加上符號,
時間複雜度:o(n)
具體實現:
var a = x
if a == 0
//定義乙個bool表示正負數
var bool : bool = true
if x < 0 else
//將字串中的-移除
var c = string(x)
if c.contains("-")
var result : string! = ""
//遍歷字串,將當前的字元拼接在後面
for i in c
//如果字串的第乙個字元為0,則需要移除
if result.first == "0"
//判斷反轉後的字串整數是否溢位
if nsstring.init(string: result).integervalue > 2147483647
//如果傳入的是負數,則需要加上-標識
if bool
return nsstring.init(string: result).integervalue
解法二
思路:使用數學方法,在沒有陣列的情況下,對數字進行 彈出 和 推入操作,最後判斷下反轉的數字是否溢位
pop:彈出操作
pop = x%10
x /= 10
push:推入操作
temp = rev * 10 + pop
rev = temp
時間複雜度:o(log(x))
具體實現:
func reverseint(x : int)->int
if (rev < int.min/10)||(rev == int.min/10 && pop < -8)
rev = rev*10+pop
}return rev
}
Swift 反轉整數 LeetCode
給定乙個 32 位有符號整數,將整數中的數字進行反轉。注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。示例 輸入 123 輸出 321解決方法 class solution func reverse x int in...
反轉整數演算法
演算法要求 給定乙個 32 位有符號整數,將整數中的數字進行反轉。給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 2 ...
演算法 整數反轉
題目 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如...