把字串轉換成整數

2021-10-03 10:10:02 字數 1600 閱讀 5598

題目:

將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。 數值為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 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司...