zoukankan      html  css  js  c++  java
  • 剑指offer 面试20题

    面试20题:

    题目:表示数值的字符串

    题:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

    解题思路一:利用Python中的float强转,如果可以那么它是一个合法的数值的字符串,否则不是。

    解题代码:

    # -*- coding:utf-8 -*-
    class Solution:
        # s字符串
        def isNumeric(self, s):
            # write code here
            try:
                return float(s)
            except:
                return 0
            

    解题思路二:考虑是否有e存在,如果有,e后面必须有数字,且必须是整数(正整数o或负整数),如果没有e存在,则判断它是不是普通的数字。详见下面代码。

    解题代码:

    # -*- coding:utf-8 -*-
    class Solution:
        # s字符串
        def isNumeric(self, s):
            # write code here
            if not s or len(s)<=0:
                return False
            alist=[i.lower() for i in s]
            if 'e' in alist:
                index=alist.index('e')
                front=alist[:index]
                behind=alist[index+1:]
                if '.' in behind or len(behind)==0:
                    return False
                isfront=self.isDigit(front)
                isbehind=self.isDigit(behind)
                return isfront and isbehind
            else:
                return self.isDigit(alist)
            
        def isDigit(self,alist):
            dotNum=0
            allow_num = ['0', '1', '2', '3', '4', '5',
                         '6', '7', '8', '9', '+', '-', '.']
            for i in range(len(alist)):
                if alist[i] not in allow_num:
                    return False
                if alist[i]=='.':
                    dotNum += 1
                if alist[i] in '+-' and i!=0:
                    return False
            if dotNum>1:
                return False
            return True
  • 相关阅读:
    跟着太白老师学python 10day 函数的动态参数 *args, **kwargs, 形参的位置顺序
    IO 流之字符流的缓冲区
    Java IO异常处理方式
    Java IO 流
    Java 其他对象的 API
    Java 集合框架之 JDK 1.5 新特性
    Java 集合框架工具类
    Java 集合框架之 Map
    Java 集合框架查阅技巧
    Java 集合框架之泛型
  • 原文地址:https://www.cnblogs.com/yanmk/p/9196088.html
Copyright © 2011-2022 走看看