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

杭州滨江网站建设深圳网络推广哪家好

杭州滨江网站建设,深圳网络推广哪家好,wordpress 编辑器添加自定义按钮,深圳企业网站建设费用表示数值的字符串 原题链接:剑指 Offer 20. 表示数值的字符串 - 力扣(LeetCode)1.1 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。数值(按顺序)可以分成以下几个部分&a…

表示数值的字符串

原题链接:
剑指 Offer 20. 表示数值的字符串 - 力扣(LeetCode)

1.1 题目描述

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。
数值(按顺序)可以分成以下几个部分:
        1.若干空格
        2.一个 小数 或者 整数
        3.(可选)一个 'e' 或 'E' ,后面跟着一个 整数
        4.若干空格
小数(按顺序)可以分成以下几个部分:
        1.(可选)一个符号字符('+' 或 '-')
        2.下述格式之一:
                  1.至少一位数字,后面跟着一个点 '.'
                  2.至少一位数字,后面跟着一个点 '.' ,后面再跟着至少一位数字
                  3.一个点 '.' ,后面跟着至少一位数字
整数(按顺序)可以分成以下几个部分:
        1.(可选)一个符号字符('+' 或 '-')
        2.至少一位数字
部分数值列举如下:
       · ["+100", "5e2", "-123", "3.1416", "-1E-16", "0123"]
部分非数值列举如下:
       · ["12e", "1a3.14", "1.2.3", "+-5", "12e+5.4"]

1.2 思路分析

表示数值的字符串遵循模式 A[.[B]][e|EC]或者.B[e]EC],其中A 为数值的整数部分,B紧跟着小数点为数值的小数部分,C紧跟着'e或者E为数值的指数部分.在小数里可能没有数值的整数部分.例如,小数.123 等于0.123。因此 A 部分不是必需的。如果一个数没有整数部分,那么它的小数部分不

能为空。

上述A和 C都是可能以'+或者'-'开头的0~9 的数位串;B也是0~9的数位串,但前面不能有正负号。

以表示数值的字符串"123.45e+6"为例,“123”是它的整数部分A,“45”

是它的小数部分 B,“+6”是它的指数部分C。

判断一个字符串是否符合上述模式时,首先尽可能多地扫描0~9 的数位(有可能在起始处有'+'或者'-'),也就是前面模式中表示数值整数的A部分。如果遇到小数点.',则开始扫描表示数值小数部分的 B 部分。如果遇到'e'或者'E',则开始扫描表示数值指数的C 部分。

代码中有注释,说到底就是暴力枚举的感觉,剑指offer上跟leetcode上的题目略微有一点不同:剑指offer上表示数值的字符串前后没有空格。

bool isNumber(char* s){if(s == NULL){return false;}while(*s==' ') //跳过前面的空格{s++;}if(*s=='+'||*s=='-') //判断正负号{s++;if(*s=='+'||*s=='-') //连续的两个正负号{return false;}}if(*s=='\0') //只有正负号的情况{return false;}int dot = 0, e = 0, num = 0; //记录小数点,e,数字出现的次数//遍历随后的字符串while(*s!='\0'){if(*s>='0'&&*s<='9'){s++;num++;}else if(*s=='.'){if(dot > 0||e>0){//在出现小数点时如果已经有小数点了,如: ..34 ; 或者e后面出现小数点,如:e3.2return false;}s++;dot++;if(num==0 && !(*s>='0'&&*s<='9')) {return false;}}else if(*s=='e'||*s=='E') //判断e{if(num == 0 || e > 0){//出现e却没有数字,如:e23;或者出现多个e,如:ee32return false;}s++;e++;if(*s=='+'||*s=='-') //判断正负号{s++;if(*s=='+'||*s=='-') //连续的两个正负号, e后面不能连续的两个正负号{return false;}}if(*s=='\0'||*s==' ') //如果e后面就没了,return false{return false;}        }else if(*s == ' '){break; //遇到空格直接跳出循环}else{return false;}}while(*s==' ') {s++;}if(*s=='\0'){//如果是末尾的空格返回truereturn true;}else{//如果是中间的空格返回falsereturn false;}
}

 

http://www.dtcms.com/wzjs/364819.html

相关文章:

  • 设计公司网站页面设计怎么优化网站排名
  • wordpress foxplayer杭州百度快照优化公司
  • 广州微信网站建设哪家好朋友圈信息流广告投放价格
  • 成都响应式网站开发茶叶网络推广方案
  • 网站建设考虑事项杭州网站建设方案优化
  • 常州网站快速排名优化广告联盟代理平台
  • 关键词没有排名的网站怎么做百度信息流推广技巧
  • 做网站要找什么软件商旅100网页版
  • 网站怎么做动态图片网站建站网站
  • 跟公司产品做网站百度公司在哪里
  • 做类似知乎网站大数据营销推广精准粉
  • wap网站还用吗西安网站建设制作公司
  • 自己做网站 搜索功能开发北京seoqq群
  • 钱包钱夹移动网站建设百度贴吧入口
  • 乐安网站建设深圳网站营销seo电话
  • 建设银行积分兑换网站站长网站seo查询
  • 做网站时候如果添加微信代码网络推广是以企业产品或服务
  • wordpress里验证谷歌站长推广赚钱app哪个靠谱
  • 3dweb做的网站谷歌搜索引擎入口2023
  • 天水 网站建设seo常见的优化技术
  • 合肥电子商务网站建设免费推广工具有哪些
  • 龙岗商城网站建设在线推广企业网站的方法有
  • 双峰网站建设现在最好的免费的建站平台
  • 西安高端网站建设首选百度服务中心投诉
  • 如何在手机上做网站交换友情链接前后必须要注意的几点
  • 网络营销课程个人总结范文合肥seo推广培训班
  • 单县网站电子商务seo
  • 做网站人员配置电商网站建设方案
  • 成都网站建设四川冠辰邀请注册推广赚钱的app
  • 政府类wap网站建设方案自助建站工具