当前位置: 首页 > news >正文

重庆建设网站哪家专业全屋定制网

重庆建设网站哪家专业,全屋定制网,定制制作网站开发,三亚百度推广开户剑指 Offer 20. 表示数值的字符串 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 数值(按顺序)可以分成以下几个部分: 若干空格 一个 小数 或者 整数 (可选)一个 ‘e’ 或 ‘…

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

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。

数值(按顺序)可以分成以下几个部分:

若干空格
一个 小数 或者 整数
(可选)一个 ‘e’ 或 ‘E’ ,后面跟着一个 整数
若干空格
小数(按顺序)可以分成以下几个部分:

(可选)一个符号字符(‘+’ 或 ‘-’)
下述格式之一:
至少一位数字,后面跟着一个点 ‘.’
至少一位数字,后面跟着一个点 ‘.’ ,后面再跟着至少一位数字
一个点 ‘.’ ,后面跟着至少一位数字
整数(按顺序)可以分成以下几个部分:

(可选)一个符号字符(‘+’ 或 ‘-’)
至少一位数字
部分数值列举如下:

[“+100”, “5e2”, “-123”, “3.1416”, “-1E-16”, “0123”]
部分非数值列举如下:

[“12e”, “1a3.14”, “1.2.3”, “±5”, “12e+5.4”]

示例 1:

输入:s = “0”
输出:true
示例 2:

输入:s = “e”
输出:false
示例 3:

输入:s = “.”
输出:false
示例 4:

输入:s = " .1 "
输出:true

模拟

参考大佬思路
k神的有限状态机看不懂
题目定义的格式,对字符串直接分段判断更直观

  1. 去掉头尾空格,处理剩下部分
  2. 判断是否带e/E
  • 不带,要求是整数或小数
  • 带,以e/E为分隔符,分为前后两部分,前面要求整数或小数,后面要求整数
static inline bool isSignChar(char c) {return c == '+' || c == '-';
}static inline bool isNumChar(char c) {return c >= '0' && c <= '9';
}// 判断是否整数
static bool isInteger(const char* s, int len) {if (len <= 0)return false;// 判断符号字符if (isSignChar(s[0]) && len > 1) {++s;--len;}for (int i = 0; i < len; ++i) {if (!isNumChar(s[i]))return false;}return true;
}// 判断是否小数
static bool isDecimal(const char* s, int len) {if (len <= 0)return false;if (isSignChar(s[0]) && len > 1) {++s;--len;}int dot_index = -1;for (int i = 0; i < len; ++i) {if (s[i] == '.') {if (dot_index == -1)dot_index = i;elsereturn false;} else if (!isNumChar(s[i]))return false;}// 至少存在 '.' 和一个数字return dot_index >= 0 ? len > 1 : false;
}class Solution {
public:bool isNumber(string s) {const char* p = s.c_str();int len = s.length();// 跳过头尾空格const char* l = p, *r = p + len - 1;while (l <= r && *l == ' ') ++l;while (l <= r && *r == ' ') --r;// 全是空格或空字符串if (l > r) {return false;}// 搜索 e/Econst char* c = l;while (c <= r && *c != 'e' && *c != 'E')++c;if (c < r) {// 有 e/E,后面跟整数return (isInteger(l, c - l) || isDecimal(l, c - l)) && isInteger(c + 1, r - c);} else {// 无 e/Ereturn isInteger(l, r - l + 1) || isDecimal(l, r - l + 1);}}
};
http://www.yayakq.cn/news/158649/

相关文章:

  • 如何做一份企业网站网站建设过时了吗
  • 市网站建设空白word个人简历
  • 昌平网站建设公司做网站需要做需求分析吗
  • 陕西住房和城乡建设部网站首页哪里学网站建设推广
  • 淘宝网站开发类目没法上架商品新手学做网站12天婴
  • 网站建设相关资料文件全球速卖通大学
  • 灌云网站设计专业网站制作哪便宜
  • 免费机械网站模板国内上市的网络公司排名
  • 菠菜源码怎么做网站常德做网站专业公司
  • 乐清网站制作电话网站关键词布局图
  • 微信的网站怎么做哪里有平面设计
  • 台州网站设计建设省级网站建设标准
  • 韩城市住房和城乡建设局网站wordpress如何访问后台页面
  • 华为云速建站模板wordpress大学添加背景音乐
  • 高端网站建设服务器微网站好制作吗
  • asp.net商务网站 包括哪些文件前端开发的软件
  • 网站建设宗旨及商业模式百度电脑版入口
  • 网站初期如何推广的vi设计网站大全
  • seo网站优化工具大全很多卖假药冒产品用二级域名做网站
  • 花钱想贷款结果成了做网站东莞网络营销代运营
  • 西安空调销售网站建设自己做网站能做付费链接吗
  • 上海微网站设计全国大学生创业网登录入口
  • 淮海中路街道网站建设北京高端网站开发公司
  • 成品网站建设哪家好九九9九九9视频在线观看
  • 企业cms免费模板上海做网站优化
  • 网站制作的基本步骤是增加网站关键词
  • 石家庄模板自助建站seo排名工具外包
  • 中山市住房和城乡建设局网站苗木网站素材
  • 无线网站应建设在什么地方wordpress 购物 手机站
  • 做app要不要建网站成功做网站