mysql视频 定义键盘快捷键 CSS选择器 spring service knockoutjs routes ios7 jquery对象 jquery通过class获取元素 python查看数据类型 删除数组第一个元素 cad怎么重复上一次命令 bootstrap居中对齐 svn查看历史版本 mysql数据库 python随机数 python搭建环境 pythoninput python编程题 python调用函数 python读文件 python插件 java函数 javasocket javascript源代码 制作字幕的软件 ad19 骰子表情 tomcat修改端口 桌面数字时钟 脚本列表 送货单管理系统 unity3d中文版 极限防守图 失心迷宫怎么打 nginx启动命令 字符串分割 极速pdf转word 人脸识别代码
当前位置: 首页 > 学习教程  > 编程语言

[H模拟] lc65. 有效数字(模拟)

2020/12/28 19:38:20 文章标签:

文章目录1. 题目来源2. 题目解析1. 题目来源 链接:65. 有效数字 2. 题目解析 这题大可不必做!!!实话。 实现 stof() 函数。见代码中注释即可。自己做,不 WA 10 次以上,很难 AC。 时间复杂度&#xff1a…

文章目录

    • 1. 题目来源
    • 2. 题目解析

1. 题目来源

链接:65. 有效数字

2. 题目解析

这题大可不必做!!!实话。

实现 stof() 函数。见代码中注释即可。自己做,不 WA 10 次以上,很难 AC

在这里插入图片描述

  • 时间复杂度 O ( n ) O(n) O(n)
  • 空间复杂度 O ( 1 ) O(1) O(1)

代码:

class Solution {
public:
    bool isNumber(string s) {
        int l = 0, r = s.size() - 1;
        while (l <= r && s[l] == ' ') l ++ ;
        while (l <= r && s[r] == ' ') r -- ;    // 去除前后空格
        if (l > r) return false;                // 字符串为空
        s = s.substr(l, r - l + 1);             // 重新更新去除前后空格的字符串
        if (s[0] == '+' || s[0] == '-') s = s.substr(1);  // 除去首个符号位
        if (s.empty()) return false;            // 仅有符号位则出错
        
        // 若首字母为点,且仅有点且后面紧跟 e、E 则错误 
        if (s[0] == '.' && (s.size() == 1 || s[1] == 'e' || s[1] == 'E')) return false;
    
        int dot = 0, e = 0;      // 记录点和 e 出现的次数
        for (int i = 0; i < s.size(); i ++ ) {
            if (s[i] == '.') {
                if (dot > 0 || e > 0) return false;     // 点出现过一次,且点在 e 的后面的话则错误
                dot ++ ;
            } else if (s[i] == 'e' || s[i] == 'E') {    
                if (!i || i + 1 == s.size() || e > 0)   return false; // 如果 e 前面是空,或者后面是空,或者已经出现过 e 则错误
                if (s[i + 1] == '+' || s[i + 1] == '-') {   // e 后面是正负号的话
                    if (i + 2 == s.size()) return false;    // e 后面只有正负号的话就错误
                    i ++ ;                                  // 跳过正负号
                }
                e ++ ;                                      // e 个数加 1 
            } else if (s[i] < '0' || s[i] > '9') return false;  // 最后,如果不是数字就错误
        }
        return true;
    }
};

本文链接: http://www.dtmao.cc/news_show_550332.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?