摘要:描述分析該題的說明比較模糊,所以需要慢慢進(jìn)行嘗試來弄清楚哪些是合法的數(shù)字。代碼去除前后的空格小數(shù)點(diǎn)前面不能出現(xiàn)和小數(shù)點(diǎn)前面不能出現(xiàn),并且需要有數(shù)字保證后面也有數(shù)字符號(hào)只能再位和后面一位
描述
Validate if a given string is numeric.
Some examples:
"0" => true
" 0.1 " => true
"abc" => false
"1 a" => false
"2e10" => true
該題的說明比較模糊,所以需要慢慢進(jìn)行嘗試來弄清楚哪些是合法的數(shù)字。整理了以下規(guī)則:
符號(hào)只能出現(xiàn)在最前面或者字符e后面一位
" . "只能e的前面,且只能有一個(gè)小數(shù)點(diǎn)
e最多只能出現(xiàn)一次,且前面必須有數(shù)字,后面也必須有數(shù)字
所以按照數(shù)字、小數(shù)點(diǎn)、e和符號(hào)這四類列出規(guī)則就可以了,記住e后面必須有數(shù)字,所以需要增加一個(gè)變量numberAftereSeen。
代碼class Solution: def isNumber(self, s): """ :type s: str :rtype: bool """ # 去除前后的空格 temp_s = s.strip() numberSeen = False pointSeen = False eSeen = False numberAftereSeen = True for i in range(len(temp_s)): if temp_s[i].isdigit(): numberSeen = True numberAftereSeen = True elif temp_s[i] == ".": # 小數(shù)點(diǎn)前面不能出現(xiàn)e和小數(shù)點(diǎn) if eSeen or pointSeen: return False pointSeen = True elif temp_s[i] == "e": # e前面不能出現(xiàn)e,并且需要有數(shù)字 if eSeen or not numberSeen: return False eSeen = True # 保證e后面也有數(shù)字 numberAftereSeen = False elif temp_s[i] in ["+", "-"]: # 符號(hào)只能再0位和e后面一位 if i != 0 and temp_s[i-1] != "e": return False else: return False return numberSeen and numberAftereSeen
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/41922.html
摘要:完整的正則表達(dá)式為。代碼如下翻譯如果我們看到數(shù)字,就將設(shè)為如果看到小數(shù)點(diǎn),則判斷是否已有小數(shù)點(diǎn)或是,因?yàn)楹笾荒苡姓麛?shù)只能遇到一次,如果第一次遇到但是沒有遇到數(shù)字,則返回錯(cuò)誤。 題目要求 Validate if a given string is numeric. Some examples: 0 => true 0.1 => true abc => false 1 a => fa...
摘要:描述累加數(shù)是一個(gè)字符串,組成它的數(shù)字可以形成累加序列。一個(gè)有效的累加序列必須至少包含個(gè)數(shù)。說明累加序列里的數(shù)不會(huì)以開頭,所以不會(huì)出現(xiàn)或者的情況。示例輸入輸出解釋累加序列為。 LeetCode 306. Additive Number Description Additive number is a string whose digits can form additive sequen...
摘要:為了減少無效遍歷,我們可以在尋找第一個(gè)數(shù)字和第二個(gè)數(shù)字的時(shí)候及時(shí)終止。我們可以知道第一個(gè)數(shù)字的長(zhǎng)度不應(yīng)該超過字符串長(zhǎng)度的一般,第二個(gè)數(shù)字的長(zhǎng)度無法超過字符串長(zhǎng)度減去第一個(gè)數(shù)字的長(zhǎng)度。因此一旦遇到,在判斷完作為加數(shù)時(shí)是否合法后,直接跳出循環(huán)。 題目要求 Additive number is a string whose digits can form additive sequence....
摘要:如果重復(fù)則不合法,否則極為合法。在這里我們使用數(shù)組代替作為存儲(chǔ)行列和小正方形的值得數(shù)據(jù)結(jié)構(gòu)。我存儲(chǔ)這所有的行列小正方形的情況,并判斷當(dāng)前值是否重復(fù)。外循環(huán)則代表對(duì)下一行,下一列和下一個(gè)小正方形的遍歷。 題目要求 Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku boa...
Problem Validate if a given string can be interpreted as a decimal number. Some examples: 0 => true 0.1 => true abc => false 1 a => false 2e10 => true -90e3 => true 1e => false e3 => false 6e-...
閱讀 3158·2021-10-08 10:04
閱讀 1099·2021-09-30 09:48
閱讀 3468·2021-09-22 10:53
閱讀 1686·2021-09-10 11:22
閱讀 1699·2021-09-06 15:00
閱讀 2156·2019-08-30 15:56
閱讀 719·2019-08-30 15:53
閱讀 2291·2019-08-30 13:04