題目:
將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是乙個合法的數值則返回0
輸入描述:
輸入乙個字串,包括數字字母符號,可以為空
輸出描述:
如果是合法的數值表達則返回該數字,否則返回0
思路:
(res << 1) + (res << 3) = res * 2 + res * 8 = res * 10 。 字元』0』到』9』的ascii值的低4個二進位制位剛好就是0到9所以str[i]&0xf等於str[i]-『0』。
**:
class
solution
:def
strtoint
(self, s):if
not s:
return
0 res =
0if s[0]
=='+'
:for i in s[1:
]:if i notin[
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9']
:return
0else
: res =
(res<<1)
+(res<<3)
+(ord(i)
&0xf
)return res if res <2**
31else
0elif s[0]
=='-'
:for i in s[1:
]:if i notin[
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9']
:return
0else
: res =
(res<<1)
+(res<<3)
+(ord(i)
&0xf
)return
-res if
-res >=-2
**31
else
0else
:for i in s:
if i notin[
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9']
:return
0else
: res =
(res<<1)
+(res<<3)
+(ord(i)
&0xf
)return res if res <2**
31else
0
把字串轉換成整數
題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數345 分析 這道題儘管不是很難,學過c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司用作...
把字串轉換成整數
題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數 345。分析 這道題儘管不是很難,學過c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司用...
把字串轉換成整數
題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數 345。分析 這道題儘管不是很難,學過 c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司...