zoukankan      html  css  js  c++  java
  • [Leetcode]@python 65. Valid Number

    题目链接:https://leetcode.com/problems/valid-number/


     题目大意:给定一个字符串,判断是否是数字

         如:"0" => true
           " 0.1 " => true
             "abc" => false
           "1 a" => false
           "2e10" => true


     解题思路:先将两端的空格去掉,判断开始是否数字,如果不是直接返回False,然后判断是否遇到'.'和‘e',然后判断'e'以后是否有’+‘,’-‘和’.'。


     代码(python):

    class Solution(object):
        def isNumber(self, s):
            """
            :type s: str
            :rtype: bool
            """
            begin, last = 0, len(s) - 1
            # 将字符串前后的空格去掉
            while begin <= last and s[begin] == ' ':
                begin += 1
            while begin <= last and s[last] == ' ':
                last -= 1
    
            # 数字前为正号或者负号的情况,首位后移
            if begin < last and (s[begin] == '+' or s[begin] == '-'):
                begin += 1
            num, dot, exp = False, False, False
    
            while begin <= last:
                # 该字符为数字
                if s[begin] >= '0' and s[begin] <= '9':
                    num = True
                # 若首位为"."则返回false,否则标记为小数
                elif s[begin] == '.':
                    if dot or exp:
                        return False
                    dot = True
                # 若首位为"e"或"E",则返回false,否则标记为科学计数
                elif s[begin] == 'e' or s[begin] == 'E':
                    if exp or not num:
                        return False
                    exp, num = True, False
                # 若遇到正负号,则判断前一位是否为字符"e"或"E"
                elif s[begin] == '+' or s[begin] == '-':
                    if s[begin - 1] != 'e':
                        return False
                else:
                    return False
                begin += 1
            return num
    View Code

  • 相关阅读:
    python之enumerate
    Python中的集合set
    SGU 分类
    太空飞行计划 最大权闭合图
    1.飞行员配对 二分图匹配(输出方案)/最大流斩
    poj1149最大流经典构图神题
    hdu1569 方格取数 求最大点权独立集
    最大独立集 最小点覆盖 最小边覆盖 最小路径覆盖 最大团
    hdu3491最小割转最大流+拆点
    hdu3987,最小割时求最少割边数
  • 原文地址:https://www.cnblogs.com/slurm/p/5110406.html
Copyright © 2011-2022 走看看