国产性生交xxxxx免费-国产中文字幕-啊灬啊灬啊灬快灬高潮了,亚洲国产午夜精品理论片在线播放 ,亚洲欧洲日本无在线码,色爽交视频免费观看

鍋爐信息網 > 鍋爐知識 > 鍋爐資訊

65. Valid Number

發布時間:

65. Valid Number難度:hardValidate if a given string can be interpreted as a decimal number.這一題非常非常無意義,不推薦做。

65. Valid Number

難度:hard

Validate if a given string can be interpreted as a decimal number.

這一題非常非常無意義,不推薦做。

實際上自帶函數float就可以做到,但是這樣就失去了意義,因此我還是嘗試自己實現了一下:

class Solution:n def isNumber(self, s: str) -> bool:n s = s.strip()n if not s: return Falsen if s[0] == '+' or s[0] == '-': s = s[1:]n try:n pointindex = s.index('.')n except:n pointindex = -1n try:n eindex = s.index('e')n except:n eindex = -1n if eindex != -1:n if eindex == len(s)-1: return Falsen epart = s[eindex+1:]n s = s[:eindex]n if epart[0] == '+' or epart[0] == '-': n epart = epart[1:]n if not epart: return Falsen for i in epart:n if not i.isdigit(): return False n if s == '.' or not s: return Falsen s = s[:pointindex] + s[pointindex+1:]n try:n s.index('.')n return Falsen except:n for j in s:n if not j.isdigit(): return Falsen return True

嘗試略加整理:

數字的結構:開頭或者e之后可能有正負號(+,-),e(如果存在)前面必須有一個可能有小數點的數字,小數點可以有一邊沒有數字,而e后面必須是一個整數,因此可以先找到小數點和e的位置,要求如果二者都存在的話小數點必須在前。

e或者字符尾前是一個數字,并且這個數字去掉小數點之后理應變成一個不空的正數,而e(如果存在)后面的數字去掉可能存在的正負號之后也必須是一個不為空的整數。

class Solution:n def isNumber(self, s: str) -> bool:n def isPositiveInteger(string):n if not string: return Falsen for i in string:n if not i.isdigit(): return Falsen return True n n s = s.strip()n if not s: return Falsen if s[0] == '+' or s[0] == '-': s = s[1:]n ans = Truen l = len(s)n try:n pointindex = s.index('.')n except:n pointindex = ln try:n eindex = s.index('e')n except:n eindex = ln n if pointindex != l and pointindex > eindex: return Falsen if pointindex == l: beforee = s[:eindex]n else: beforee = s[:pointindex]+s[pointindex+1:eindex]n if not isPositiveInteger(beforee): return Falsen if eindex != l:n epart = s[eindex+1:]n if epart:n if epart[0] == '+' or epart[0]== '-': epart = epart[1:]n return isPositiveInteger(epart)n return True

我比較喜歡submission中最快的方法:

class Solution:n def isNumber(self, s: str) -> bool:n import ren regex = r'^s*[-+]?d*(?:.d+|d.?d*)(?:e[-+]?d+)?s*$'n return bool(re.match(regex, s))

實際上這里涉及到如何寫正則表達式以及如何匹配:

Python 正則表達式 | 菜鳥教程Python正則表達式指南 - AstralWind - 博客園

精選推薦

  • 如何正確選擇白板供應商
    如何正確選擇白板供應商

    目前在無錫想采購一塊白板不管是實體店鋪,還是網絡平臺都有很多選擇,想要到專業的無錫白板公司采購還需要掌握一定的方式技巧。現

  • 柴油發電機組供應商
    柴油發電機組供應商

      t 揚州華東動力機械有限公司,位于江蘇省揚州市江都區仙城工業園,是專業從事發電機、柴油及燃氣發電機組研發、制造、銷售、服務于

  • 高溫輻射爐
    高溫輻射爐

    5.2.2高溫輻射爐5.2.2.1溫度控制★(1)樣品溫度范圍:常溫~1400℃。★(2)均溫區:長度不小于80mm。★(3)中心區:長度不小于10mm。(4)溫度梯度(均

  • 高壓鍋在什么情況下會爆炸?
    高壓鍋在什么情況下會爆炸?

    近日,多地發生高壓鍋爆炸事故,給不少家庭帶來了傷害和財產損失。那么,什么情況下會導致高壓鍋爆炸呢?首先,當高壓鍋內部壓力過高時,如果

0