力扣(LeetCode)65. 有效数字(C++)

news2025/8/12 2:10:52

模拟

面向测试用例的编程,想象到了工程开发的画面。改需求,代码也可以精简!

首先判断首位正负号,去除正负号,如果只有一个正负号字符,false。
判断 ′ . ′ '.' . ,如果是单独的 ′ . ′ '.' . ,false ,如果 ′ . ′ '.' . 后面有 ′ e ′ 'e' e ′ E ′ 'E' E ,false。
维护两个变量,记录 ′ . ′ '.' . ′ e ′ 'e' e 出现的次数,进入循环。
遇到 ′ . ′ '.' . ,如果 ′ . ′ '.' . 出现过,false。
遇到 ′ e ′ 'e' e,如果 ′ e ′ 'e' e 出现过,或者 ′ e ′ 'e' e 在首位或者最后一位,false。 ′ e ′ 'e' e 后可接正负号,如果正负号在最后一位,false。
遇到非数字,false。
逃出循环,true。

class Solution {
public:
    bool isNumber(string s) {//模拟
        if('+'==s[0]||'-'==s[0]) s = s.substr(1);
        if(s.empty()) return false;
        int dot = 0, e= 0;
        if('.'==s[0]&&(1==s.size()||s[1]=='e')) return false;
        for(int i = 0;i<s.size();i++){
            if('.'==s[i]){
                if(e>0||dot>0) return false;
                dot++;
            }else if('e'==s[i]||'E'==s[i]){
                if(e>0||0==i||i==s.size()-1) return false;
                e++;
                if('-'==s[i+1]||'+'==s[i+1]){
                    i++;
                    if(s.size()-1==i) return false;
                }
            }else if (s[i]>'9'||s[i]<'0') return false;
        }
        return true;
    }
};

时间复杂度 O ( n ) O(n) O(n) , 一次遍历字符串的时间复杂度 O ( n ) O(n ) O(n)

空间复杂度 O ( 1 ) O(1) O(1) ,只使用了常量级空间。

致语

理解思路不重要,我也是面向测试用例编程。
欢迎读者在评论区留言,答主看到就会回复的。

AC

AC

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/33625.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PS软件下载安装以基本配置

先访问地址 PS下载地址 下载需要付费 给你的下载地址链接一定要保存好 然后根据自己的电脑系统和配置选择一个适合自己的 最后 会下下来一个解压包 然后 我们在 一个盘下 注意 不要用C盘 这里我选择D盘 创建一个文件夹 叫PS设计工具 然后将解压包解压到对应的 PS开发工具文…

第五章 神经网络(下)

5.3 误差逆传播算法 多层网络地学习能力比单层感知机强的多。欲训练多层网络&#xff0c;之前的简单感知机学习规则显然不够用了&#xff0c;需要更强大的学习算法。误差逆传播&#xff08;error BackPropagation&#xff0c;简称BP&#xff09;算法就是其中最杰出的代表。现实…

CPU受限直接执行

目录 1. 虚拟化CPU 2. 进程 2.1 进程的机器状态 2.2 进程创建 2.3 进程的状态 3. 受限直接执行 3.1 直接执行 3.2 受限制的操作 3.3 在进程之间切换 3.3.1 协作方式&#xff1a;等待系统调用 3.3.2 非协作方式&#xff1a;操作系统进行控制 3.3.3 保存和恢复上下…

油藏生产业务+机器学习代理优化算法

前前处理&#xff0c;把后台需要的参数都读出来。写进name.txt 生成新的sch文件&#xff0c;需要在data里追加新sch名字 没改变的井就不用重新卸载关键字里了。 重启动模型&#xff1a;制作出来是空的&#xff0c;得自己加别的东西 模型要准确&#xff0c;否则不好和历史模型…

【吴恩达机器学习笔记】二、单变量线性回归

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4e3;专栏定位&#xff1a;为学习吴恩达机器学习视频的同学提供的随堂笔记。 &#x1f4da;专栏简介&#xff1a;在这个专栏&#xff0c;我将整理吴恩达机器学习视频的所有内容的笔记&…

OpenGL原理与实践——核心模式(三):Texture-纹理系统理论与应用

目录 初识——纹理系统是什么&#xff1f;怎么用? Texture —— UV坐标系统 Texture Wrapping&#xff1a;UV超过了[0,1]怎么办&#xff1f; Texture Filter&#xff1a;UV经过计算得到的是浮点数怎么办&#xff1f; 在OpenGL中该怎么做呢&#xff1f; Texture Unit——…

列表和标签企业报告版的完整报告解决方案

列表和标签企业报告版的完整报告解决方案 无缝集成到所有主要开发环境和编程语言&#xff1a;Visual Studio、.NET/。NET核心(C#、VB.NET)、C/C、Delphi/VCL、Java、Progress、DataFlex、dBASE PLUS、Xbase等。 通过现代数据绑定灵活连接到任何数据源&#xff1a;List&Labe…

自适应点云配准(RANSAC、ICP)

点云配准 实验目标 任务一&#xff1a;将两个形状、大小相同的点云进行配准&#xff0c;进而估计两个点云之间的位姿。 任务二&#xff1a;将一些列深度图反向投影得到点云&#xff0c;经过配准后&#xff0c;得到每个深度图之间的位姿变换&#xff0c;并将相应的点云融合到一…

【云原生】Docker镜像的创建,Dockerfile

内容预知 1.Dokcer镜像的创建 1.1 基于现有镜像创建 1.2 基于本地模板创建 1.3 基于Dockerfile 创建 联合文件系统(UnionFS ) 镜像加载原理 容器中操作系统容量小的原因 Docker镜像结构的分层 Dockefile的引入 2. Dockerfile 操作命令的指令 2.1 FROM 镜像 2.2 MA…

股票接口实时交易数据怎么查询?

股票数据接口作为软件应用而言&#xff0c;很多资源和数据是由自身提供的&#xff0c;像其他一些功能还是需要调用第三方提供的服务&#xff0c;这其中就涉及到股票数据接口api的调用功能&#xff0c;通过api来获取实时交易数据查询更方便&#xff0c;因此&#xff0c;如果交易…

【学习笔记17】JavaScript作用域

笔记首发 一、作用域 &#x1f634;我们学变量&#xff0c;不是在任何地方都可以使用&#x1f634;变量有一个使用区间, 这个可以使用的区间就叫做作用域 1、全局作用域 &#x1f62b; script标签内部声明的变量&#xff0c;就是全局作用域的变量&#x1f60f;在全局作用域声明…

计算机网络的定义和分类

计算机网络早期定义&#xff1a;自治互联的计算机集合 计算机网络系统的基本组成为&#xff1a;通信子网资源子网 计算机网络分类&#xff1a; 公用网通常是由电信公司出资建造的大型网络。 专用网通常是由某个部门为满足本单位特殊业务的需要建造的网络&#xff…

基于springboot+jpa+camunda实现简单的请假审批流程

整个camunda的绘图、具体使用&#xff0c;参照上一篇文章Camunda工作流引擎简记。 源码地址&#xff0c;相关技术储备如下 springboot–v2.5.4jpa–v2.5.4postgresql–v11camunda–v7.16.0 整个过程不需要建表&#xff0c;这就是JPA面向对象编程的好处&#xff0c;这也是我认…

33 - C++中的字符串类

---- 整理自狄泰软件唐佐林老师课程 1. 历史遗留问题 C语言 不支持真正意义上的字符串 C语言用 字符数组 和 一组函数 实现字符串操作 C语言 不支持自定义类型&#xff0c;因此无法获得字符串类型 解决方案 从C到C的进化过程 引入了 自定义类型在C中可以通过类完成字符串类型…

iOS上架app store详细教材

1、安装iOS上架辅助软件Appuploader 2、申请iOS发布证书&#xff08;p12&#xff09; 3、申请iOS发布描述文件&#xff08;mobileprovision&#xff09; 4、打包ipa 5、上传ipa到iTunes Conn 1、安装iOS上架辅助软件Appuploader2、申请iOS发布证书&#xff08;p12&#xff09;…

ImmunoChemistry艾美捷牛膜联蛋白V-荧光素凋亡检测试剂盒方案

ImmunoChemistry艾美捷牛膜联蛋白V-荧光素细胞凋亡检测试剂盒提供了一种经验证的方法&#xff0c;可使用重组荧光素结合的牛膜连蛋白V和碘化丙啶&#xff08;PI&#xff09;快速、轻松地区分两个死亡细胞群和活细胞群。这些细胞将被膜联蛋白V-荧光素&#xff08;绿色荧光&#…

docker容器持久化

第六章容器持久化 容器数据卷 什么是容器数据卷&#xff1f; 容器之间可以有一个数据共享技术&#xff01;docker容器中产生的数据&#xff0c;同步到本地&#xff01; 这就是卷技术&#xff01;目录的挂载&#xff0c;将我们容器内的目录&#xff0c;挂在到linux上面&#x…

线性时间选择(Top K)问题(Java)

线性时间选择&#xff08;Top K&#xff09;问题&#xff08;Java&#xff09; 文章目录线性时间选择&#xff08;Top K&#xff09;问题&#xff08;Java&#xff09;1、前置介绍2、分治法求解3、代码实现4、复杂度分析5、扩展6、参考资料1、前置介绍 定义 选择问题&#xff0…

docker可视化与制作和提交自己的镜像

第四章docker可视化 portainer docker的图形化管理工具&#xff01;提供一个后台面板供我们操作&#xff01; docker run -d -p 8080:9000 \--restartalways -v /var/run/docker.sock:/var/run/docker.sock --privilegedtrue portainer/portainer 访问测试&#xff1a;外网…

Python_数据容器_元组tuple

一、元组tuple定义 为什么需要元组 列表是可以修改的&#xff0c;如果想要传递的信息不被篡改&#xff0c;列表就不适合了 元组和列表一样&#xff0c;都是可以封装多个不同类型的元素在内 最大的不同点在于&#xff1a; 元祖一旦定义完成&#xff0c;就不可修改 所以&am…