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...