剑指offer刷题笔记53(python)

题目描述

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

思路

在给出的可能出现的字符串中,有三个字符比较特殊,“±”,“e or E”,“.”,需要对着几种情况进行考虑:

  1. “±”只能出现在字符串首或者字符“e or E”后面,且不能出现在最后一位。
  2. “.”不能出现在字符串首,也不能出现在字符串尾部,也不能出现在字符“e or E”后面,且不能出现两次。
  3. “e or E”不能出现两次且不能出现在字符串尾部。
  4. 除了0–9和上面三个字符,不能出现其他的字符。
    在具体的实现过程中,由于“e or E”和“.”不能出现两次,那么我们可以设置两个表示这两个字符能否在出现的标志。

代码

# -*- coding:utf-8 -*-
class Solution:# s字符串def isNumeric(self, s):    # 主要是dot和E不能随便出现# write code hereallowDot = TrueallowE = Truefor i in range(len(s)):if s[i] in "+-" and (i == 0 or s[i-1] in "Ee") and i != (len(s)-1):continueelif allowDot and s[i] == ".":allowDot = False     # 若当前字符为“.”,那么后面就不能出现“.”了,修改标志为False,“eE”同理。if i == 0 or i == (len(s) -1) or allowE == False:return Falseelif allowE  and s[i] in "Ee":allowE = Falseif i == len(s)-1:return Falseelif s[i] not in "0123456789":    # 最后验证是否出现了其他字符return Falsereturn True

@ 剑指offer(python)表示数值的字符串相关推荐

  1. 【LeetCode】剑指 Offer 20. 表示数值的字符串

    [LeetCode]剑指 Offer 20. 表示数值的字符串 文章目录 [LeetCode]剑指 Offer 20. 表示数值的字符串 package offer;import java.util. ...

  2. 剑指offer:表示数值的字符串

    题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3.1 ...

  3. 剑指offer:表示数值的字符串cpp题解:指针

    文章目录 题目来源 分析 题意:需要判断是小数和科学计数法. 这里的奇淫巧计是:e之前必须是数(小数或者整数):e后面需要是整数(可以有符号位) 这就启发我们:用一个指针i,从前往后遍历,确定是否是数 ...

  4. leetcode剑指 Offer 20. 表示数值的字符串

    请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100"."5e2"."-123"."3.1416&q ...

  5. 剑指offer之表示数值的字符串

    题目 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3.141 ...

  6. 【LeetCode笔记】剑指 Offer 20. 表示数值的字符串(Java、字符串)

    文章目录 题目描述 思路 && 代码 题目描述 呃-比较恶心的一道题,需要读好题,分完情况再下手 有看到dalao用有限状态机来做,不过这边还是直接用了我自己的做法= = 思路 &am ...

  7. 剑指 Offer 58 - II. 左旋转字符串

    算法-目录 剑指 Offer 58 - II. 左旋转字符串 方法一:字符串切片[K] 新建两切片字符串,并将两切片拼接为结果字符串,无冗余操作,效率最高. class Solution(object ...

  8. 【LeetCode】剑指 Offer 58 - II. 左旋转字符串

    [LeetCode]剑指 Offer 58 - II. 左旋转字符串 文章目录 [LeetCode]剑指 Offer 58 - II. 左旋转字符串 一.字符串切片 二.列表遍历拼接 三.字符串遍历拼 ...

  9. 剑指 Offer II 117. 相似的字符串

    链接:剑指 Offer II 117. 相似的字符串 题解: 1.建设图 2.bfs遍历 class Solution { public:int numSimilarGroups(vector< ...

  10. 剑指offer——面试题28:字符串的排列

    剑指offer--面试题28:字符串的排列 Solution1: 2018年9月2日重做 典型的DFS套路,LeetCode 46 && 47 [46]https://blog.csd ...

最新文章

  1. [记录] 解决img的1px空白问题
  2. 《Python3网络爬虫开发实战(第二版)》上市了!!!!
  3. eclipse和Myeclipse中的properties文件查看和编辑插件
  4. C++ 判断类是否有某变量
  5. Flowable工作流入门
  6. Debenham养老金项目关键流程1-员工分类流程
  7. 滴滴试行“选择路线”功能 乘客可自主选择行驶路线
  8. SpringMVC的JSP页面中EL表达式不起作用${}
  9. Linux下的字符界面扫雷游戏
  10. 开发的一款IDEA电子阅读器功能介绍
  11. 如何用互联网思维搞定零售业
  12. 长连接和短连接(转)
  13. 免费在线逻辑图 + 示例
  14. JAVA架构师之路十:设计模式之组合模式
  15. 2015年总结,平平淡淡的一年.
  16. Word 悬挂缩进文本如何对齐
  17. 程序猿生成二维码的三种方法(在线接口+在线网站+本地程序)
  18. iso转cue mac_mac如何播放cue文件?
  19. 历史名人鲁迅介绍HTML个人网页作业作品下载 历史人物介绍网页设计制作 大学生英雄人物网站作业模板 dreamweaver简单个人网页制作
  20. 杂记「5.1·站在百年变革的风口浪尖」

热门文章

  1. HADOOP MapReduce 处理 Spark 抽取的 Hive 数据【解决方案一】
  2. 一线互联网互联网架构师自述:GitHub标星10w+,ffmpeg音视频开发实战6陈超
  3. matlab polyfit
  4. 《超级转化率》读书笔记
  5. 《第二堂棒球课》:MLB棒球创造营·棒球名人堂
  6. 【报告分享】2020电商直播消费升级报告-CBNDATA(附下载)
  7. 考研数学05-12年真题总结
  8. 【RED-V】基于 RISC-V 架构的开源开发板
  9. 江西博微-南昌航空大学校招双选会
  10. 销售计算机硬件开票项目写什么,软件产品销售时开具的发票项目是什么?开票时注意事项有哪些?...