leetcode7 整數反轉

2022-07-01 12:45:17 字數 1216 閱讀 6804

0x00:問題描述

將一int型數字實現高低位反轉,若遇到反轉後的數值超出int型變數表示範圍則返回0值。

0x01:解題思路

由於數字反轉後數值大小可能超限,故採用字串的形式進行反轉處理會比較方便。

此處用到的兩c++標準庫函式:stringto_string(int)、intstoi(string)。前者實現整型變數->string字串,後者實現string字串->整型變數。

注意:dev c++存在無法使用to_stringstoi等標準庫函式的情況,此時需按如下步驟修改編譯器選項:【工具】-【編譯器選項】-【編譯時加入以下命令】-「-std=c++11" 。

0x02:**

1

class

solution

6string s1=to_string(x),maxs="

-2147483648

";

7int i=1,j=s1.size()-1;8

for(;i) swap(s1[i],s1[j]);

9if(s1.size()==11&&s1>maxs) return  

0;

10return flag*stoi(s1);

11}

12 };

0x03:幾點說明

#.將x統一變為負數,方便後續一致化處理。不統一為正數的原因是,對-2147483648符號取反得出的結果已經超出了int_max

#.對string字串的反轉方法採用了swap函式進行逐位反轉。

#.line9中條件判斷表示式利用了string所支援的比較運算子'>',由此篩選出反轉後數值超限的特殊情況。

LeetCode7反轉整數

給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。以字串方式思考...

LeetCode 7 反轉整數

給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。很簡單,就是不...

leetcode 7反轉整數

隨機一題 給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返...