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
  • 相关阅读:
    译码器(选择器)
    RAM搭建
    ALU运算
    Base64
    关于Singleton
    C# WinForm导出Excel
    windows phone 前台布局以及画刷Brush使用 北京
    点击控件出现下沉或者倾斜技巧。(是你的控件不在死板,) 北京
    Centos5.4+Nginx+mysql5+php5+Zend3.3.3详细安装教程(转载请注明formating编写)
    如何锻炼身体
  • 原文地址:https://www.cnblogs.com/yanmk/p/9196088.html
Copyright © 2011-2022 走看看