剑指offer——面试题54:表示数值的字符串

参考网址:https://www.nowcoder.com/profile/9717187/codeBookDetail?submissionId=15761119
利用特殊字符把字符串分割为整数段这个思想值得借鉴!

class Solution {
public:bool isNumeric(char* string){if(string == NULL) //空指针返回falsereturn false;if(*string == '+' || *string == '-')string++;if(*string == '\0') //若只有符号位则返回falsereturn false;int dot = 0, num = 0, nume = 0;//分别用来标记小数点、整数部分和e指数是否存在while(*string != '\0') { //利用特殊字符把字符串分割为整数段这个思想值得借鉴!if(*string >= '0' && *string <= '9') //出现了数字,则指针往后移{                                    //同时num = 1代表出现了整数部分string++;num=1;}else if(*string == '.'){if(dot > 0 || nume > 0) //如果存在已经存在小数点或e指数则返回false。注:此题在书中规定中如"-.123"也被判定为数值return false;       //即有的小数没有整数位,也被判定为合法数值所以没有"num == 0 ||"这个条件string++;//否则指针后移dot=1; //并标记出现了小数点}else if(*string == 'e' || *string == 'E'){if(num == 0 || nume > 0) //如果没有整数部分或已经存在e指数return false;        //返回falsestring++;//否则指针后移nume++; //并标记已经出现了e指数if(*string == '+' || *string == '-')string++;//如果出现了正负号,指针后移if(*string == '\0') //如果e指数后面字符串直接结束,返回falsereturn false;   //如果e后面有符号位,然后符号位直接结束,返回false}elsereturn false;}return true;}
};

剑指offer——面试题54:表示数值的字符串相关推荐

  1. 剑指offer面试题[54]-表示数值的字符串

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

  2. 剑指offer——面试题11:数值的整数次方

    剑指offer--面试题11:数值的整数次方 Solution1:基本算法 累乘,时间复杂度为O(n) 要考虑全部情况:指数 < 0, == 0 和 > 0. 注意在 if-else if ...

  3. 剑指offer——面试题42-1:左旋转字符串

    剑指offer--面试题42-1:左旋转字符串 20180906整理 Solution1: 自己最开始想出来的垃圾算法!!! class Solution {public:string LeftRot ...

  4. 剑指offer | 面试题54:二叉搜索树的第k大节点

    转载本文章请标明作者和出处 本文出自<Darwin的程序空间> 本文题目和部分解题思路来源自<剑指offer>第二版 开始行动,你已经成功一半了,献给正在奋斗的我们 题目 给定 ...

  5. @ 剑指offer(python)表示数值的字符串

    剑指offer刷题笔记53(python) 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2",&quo ...

  6. 剑指Offer - 面试题54. 二叉搜索树的第k大节点(二叉树循环遍历)

    1. 题目 给定一棵二叉搜索树,请找出其中第k大的节点. 示例 1: 输入: root = [3,1,4,null,2], k = 13/ \1 4\2 输出: 4示例 2: 输入: root = [ ...

  7. 剑指offer面试题54. 二叉搜索树的第k大节点(逆中序遍历)

    题目描述 给定一棵二叉搜索树,请找出其中第k大的节点. 思路 详见链接 代码 class Solution:def kthLargest(self, root:TreeNode, k:int)-> ...

  8. [剑指offer]面试题第[38]题[JAVA][字符串的排列][回溯法]

    [问题描述][中等] 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素.示例: 输入:s = "abc" 输出:[&quo ...

  9. 剑指Offer - 面试题58 - II. 左旋转字符串

    1. 题目 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能.比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转 ...

最新文章

  1. requirednew基于xml配置日志不回滚_Elasticsearch配置IK分词器的远程词库
  2. 如何查看已安装的CentOS版本信息
  3. 10分钟理解CSS3 FlexBox
  4. Struts DispatchAction
  5. SpringBoot跨域问题解决方案
  6. Python 模块之 time datetime
  7. Smarty模板技术学习
  8. 透视变换矩阵(单应矩阵)计算:findHomography 与 getPerspectiveTransform
  9. 微信分身版电脑版_电脑版营销wetool电脑版-网站
  10. paip.DEVSUITE DEVTEST 404错误
  11. 网页扫雷(简易版)(一)
  12. SpreadJS 15.2 英文版-Crack
  13. 软考高级系统架构设计师:软件系统建模方法及其应用
  14. 1024:程序员,你的身体还好吗?
  15. android cts测试超时设置,Android的CTS测试
  16. 人大金仓(Kingbase)数据库迁移——使用大金仓数据库迁移工具进行迁移
  17. 电脑无法进入睡眠的解决方法
  18. qlikview连接mysql_QlikView 通过ODBC 连接IBM DB2
  19. TCP、IP、链路层报文l结构
  20. LeetCode刷题之1436. 旅行终点站

热门文章

  1. 写给嵌入式方向的某些同学 - 基于WINCE系统的程序开发[不完整版]
  2. 论文解读——An Analysis of Scale Invariance in Object Detection – SNIP
  3. 【字符串】旋转字符串
  4. oracle .net 中文,asp.net查出 oracle数据库中的中文乱码问题
  5. vue鼠标移动上去提示_关于如何处理vue中鼠标悬停事件的详细说明
  6. unix linux 安装mono,关于mono在linux连接unixodbc的问题
  7. java 导出表格打包zip文件下载_asyExcel导出excel并打包成zip压缩包下载
  8. diff git 指定时间_【GIT】从指定分支两个Tag中获取差异文件,进行代码的增量更新...
  9. api.cls.php文件,php数据POST提交到API接口
  10. 2017计算机绘图试题及答案,2017年度__电大(精编新版)计算机绘图期末复习试题及答案参考小抄.doc...