LeetCode每日兩題 day3

2021-09-25 21:39:51 字數 2053 閱讀 5200

leetcode8.字串轉換整數

leetcode7.整數反轉

題目詳情

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

示例 1:

輸入: 123

輸出: 321

示例 2:

輸入: -123

輸出: -321

示例 3:

輸入: 120

輸出: 21

**實現

flag =

1if x >=

0else-1

x =abs(x)

# 將abs(x)變成字串

str=

str(abs_x)

# 將字串x_str反轉

reverse_str =

str[::

-1]# 最後恢復成整數

reverse_int =

int(reverse_str)

* flag

if-2

**31

<= reverse_int <=2**

31-1:

return reverse_int

else

:return

0

個人思路

將所給的數字進行判斷,用flag表示其正負,之後將其轉換成字串,對字串進行反轉在恢復為整數。

leetcode8.字串轉換整數

題目詳情

請你來實現乙個 atoi 函式,使其能將字串轉換成整數。

首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。

當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號;假如第乙個非空字元是數字,則直接將其與之後連續的數字字元組合起來,形成整數。

該字串除了有效的整數部分之後也可能會存在多餘的字元,這些字元可以被忽略,它們對於函式不應該造成影響。

注意:假如該字串中的第乙個非空格字元不是乙個有效整數字元、字串為空或字串僅包含空白字元時,則你的函式不需要進行轉換。

在任何情況下,若函式不能進行有效的轉換時,請返回 0。

說明:假設我們的環境只能儲存 32 位大小的有符號整數,那麼其數值範圍為 [−231, 231 − 1]。如果數值超過這個範圍,qing返回 int_max (231 − 1) 或 int_min (−231) 。

**實現

class

solution

(object):

defmyatoi

(self,

str)

:"""

:type str: str

:rtype: int

"""str=

str.strip(

) i =

0 res =

''if

len(

str)==0

:return

0elif

str[0]

in["+",

"-"]

: res +=

str[0]

i +=

1while i <

len(

str):if

str[i]

.isdigit():

res +=

str[i]

i +=

1else

:break

try:

num =

int(res)if(

-2**31

)< num <2**

31:return num

elif num <0:

return(-

2**31)

else

:return2**

31-1except

:return

0

個人思路

首先運用字串自帶方法去除字串左方空格,之後對其第乙個字元進行判斷,若為空,則返回0,為正負號,則進行下一步,將其他字元歸入try語句進行判斷。

LeetCode每日兩題 day4

leetcode11.盛水最多的容器 leetcode9.回文數 問題詳情 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。實現class solution object defispalindrome self,x type x int rtype bool...

leetcode每日兩題 Day1 簡單題2

3.無重複字元的最長子串 給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入...

4 26 刷題Day 1 樹形dp兩題

include include include include using namespace std int n int head 6005 next 6005 last 6005 int root int f 5 6005 void dp int x int main for int i 1 i...