日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python 字符串转换成整数

發(fā)布時(shí)間:2025/3/21 python 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 字符串转换成整数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

| String to Int

寫一個(gè)函數(shù) StrToInt,實(shí)現(xiàn)把字符串轉(zhuǎn)換成整數(shù)這個(gè)功能。不能使用 atoi 或者其他類似的庫(kù)函數(shù)。 首先,該函數(shù)會(huì)根據(jù)需要丟棄無(wú)用的開頭空格字符,直到尋找到第一個(gè)非空格的字符為止。 當(dāng)我們尋找到的第一個(gè)非空字符為正或者負(fù)號(hào)時(shí),則將該符號(hào)與之后面盡可能多的連續(xù)數(shù)字組合起來(lái),作為該整數(shù)的正負(fù)號(hào);假如第一個(gè)非空字符是數(shù)字,則直接將其與之后連續(xù)的數(shù)字字符組合起來(lái),形成整數(shù)。 該字符串除了有效的整數(shù)部分之后也可能會(huì)存在多余的字符,這些字符可以被忽略,它們對(duì)于函數(shù)不應(yīng)該造成影響。 注意:假如該字符串中的第一個(gè)非空格字符不是一個(gè)有效整數(shù)字符、字符串為空或字符串僅包含空白字符時(shí),則你的函數(shù)不需要進(jìn)行轉(zhuǎn)換。 在任何情況下,若函數(shù)不能進(jìn)行有效的轉(zhuǎn)換時(shí),請(qǐng)返回 0。說(shuō)明: 假設(shè)我們的環(huán)境只能存儲(chǔ) 32 位大小的有符號(hào)整數(shù),那么其數(shù)值范圍為 [?231, 231 ? 1]。如果數(shù)值超過(guò)這個(gè)范圍,請(qǐng)返回 INT_MAX (231 ? 1) 或 INT_MIN (?231) 。示例 1:輸入: "42" 輸出: 42 示例 2:輸入: " -42" 輸出: -42 解釋: 第一個(gè)非空白字符為 '-', 它是一個(gè)負(fù)號(hào)。我們盡可能將負(fù)號(hào)與后面所有連續(xù)出現(xiàn)的數(shù)字組合起來(lái),最后得到 -42 。 示例 3:輸入: "4193 with words" 輸出: 4193 解釋: 轉(zhuǎn)換截止于數(shù)字 '3' ,因?yàn)樗南乱粋€(gè)字符不為數(shù)字。 示例 4:輸入: "words and 987" 輸出: 0 解釋: 第一個(gè)非空字符是 'w', 但它不是數(shù)字或正、負(fù)號(hào)。因此無(wú)法執(zhí)行有效的轉(zhuǎn)換。 示例 5:輸入: "-91283472332" 輸出: -2147483648 解釋: 數(shù)字 "-91283472332" 超過(guò) 32 位有符號(hào)整數(shù)范圍。 因此返回 INT_MIN (?231) 。 class Solution:"""解題思路:1.過(guò)濾不符合要求的數(shù)據(jù),直接return 02.截取目標(biāo)字符串(整數(shù)字符串)3.將字符串轉(zhuǎn)化為整數(shù)4.注意邊界值int 正數(shù)小于2**31 負(fù)數(shù)大于-2**31 - 1"""def strToInt(self, s: str) -> int:to_int = {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8,'9':9}s = s.strip()length = len(s)sign = Falsej = 0if not s: return 0if s[0] == '-':j = 1sign = Trueelif s[0] == '+':j = 1elif not s[0].isdigit():return 0# 計(jì)算數(shù)字字符串num_str = ''while j < length:if s[j].isdigit():num_str+=s[j]else:breakj+=1return self.string_to_int(num_str, to_int, sign)# 字符串?dāng)?shù)字轉(zhuǎn)化為整數(shù)步驟def string_to_int(self, string, to_int, sign):length = len(string)num_val = 0while length > 0:for s in string:r = to_int[s]*10**(length-1)num_val += rlength -= 1if sign is False:if num_val > 2**31-1:return 2**31-1return num_val else:if -num_val < -2**31:return -2**31return -num_val

總結(jié)

以上是生活随笔為你收集整理的python 字符串转换成整数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。