国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

LeetCode65. Valid Number -- 判斷合法數(shù)字

jindong / 2759人閱讀

摘要:描述分析該題的說明比較模糊,所以需要慢慢進(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

相關(guān)文章

  • leetcode65 valid number 正則表達(dá)式的運(yùn)用

    摘要:完整的正則表達(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...

    DobbyKim 評(píng)論0 收藏0
  • LeetCode 306. Additive Number

    摘要:描述累加數(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...

    GeekQiaQia 評(píng)論0 收藏0
  • leetcode306. Additive Number

    摘要:為了減少無效遍歷,我們可以在尋找第一個(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....

    2shou 評(píng)論0 收藏0
  • leetcode36 Valid Sudoku 查看數(shù)獨(dú)是否合法

    摘要:如果重復(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...

    wing324 評(píng)論0 收藏0
  • [LeetCode] 65. Valid Number

    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-...

    SoapEye 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<