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

加强政府网站建设 图片优化设计

加强政府网站建设 图片,优化设计,宁波网站建设哪家好,做网站需要机吗【剑指offer-C】JZ20:表示数值的字符串题目描述解题思路题目描述 描述:请实现一个函数用来判断字符串str是否表示数值(包括科学计数法的数字,小数和整数)。 科学计数法的数字(按顺序)可以分成以下几个部分…

【剑指offer-C++】JZ20:表示数值的字符串

    • 题目描述
    • 解题思路

题目描述

描述:请实现一个函数用来判断字符串str是否表示数值(包括科学计数法的数字,小数和整数)。

科学计数法的数字(按顺序)可以分成以下几个部分:
1.若干空格;
2.一个整数或者小数;
3.(可选)一个 ‘e’ 或 ‘E’ ,后面跟着一个整数(可正可负);
4.若干空格;

小数(按顺序)可以分成以下几个部分:
1.若干空格;
2.(可选)一个符号字符(‘+’ 或 ‘-’);
3. 可能是以下描述格式之一:
3.1 至少一位数字,后面跟着一个点 ‘.’;
3.2 至少一位数字,后面跟着一个点 ‘.’ ,后面再跟着至少一位数字;
3.3 一个点 ‘.’ ,后面跟着至少一位数字;
4.若干空格;

整数(按顺序)可以分成以下几个部分:
1.若干空格;
2.(可选)一个符号字符(‘+’ 或 ‘-’);
3. 至少一位数字;
4.若干空格;

例如,字符串[“+100”,“5e2”,“-123”,“3.1416”,“-1E-16”]都表示数值。
但是[“12e”,“1a3.14”,“1.2.3”,“±5”,“12e+4.3”]都不是数值。

提示:
1.1 <= str.length <= 25;
2.str 仅含英文字母(大写和小写),数字(0-9),加号 ‘+’ ,减号 ‘-’ ,空格 ’ ’ 或者点 ‘.’ ;
3.如果怀疑用例是不是能表示为数值的,可以使用python的print(float(str))去查看;

进阶:时间复杂度O(n) ,空间复杂度O(n) 。

输入:"123.45e+6"
返回值:true
输入:"1.2.3"
返回值:false
输入:"."
返回值:false
输入:"    .2  "
返回值:true

解题思路

表示数值的字符串:最直观的想法是,判断是否可以将字符串str转换为浮点数float,此处可以调用python中的内置函数float,如果发现异常则返回false,否则返回true。注意,虽然C++中的stof函数也能够把字符串转换成浮点数,但是其是读取到不满足即停止,比如字符串"1.2.3",stof会将其转换为1.2,但实际上整体是不能转换的。注意,python代码注意缩进。

def isNumeric(self , str: str) -> bool:try:float(str)except:return Falsereturn True

正则匹配:其实,该题描述,数字、空格、字母、正负号等,非常适合正则匹配,但是使用正则匹配需要对正则比较熟练。

^:匹配行开头;
$:匹配行结尾;
. :除换行的任意字符;
[]:匹配[]中的任意一个字符;
():设定分组,有几个()就有几个相应的匹配字符串;
\d:数字;
\D:\d取反;
\w:字母数字下划线;
\W:\w取反;
\s:空格;
\S:\s取反;
*:前面元素重复0次或者多次;
+:前面元素重复1次或者多次;
?:前面元素重复0次或者1次;
\:\;
|:逻辑或;
{n}:前面元素重复n次;
{n,}:前面元素重复至少n次;
{n,m}:前面元素重复至少n次,至多m次;

#include<regex> //导入库
regex pattern("……");  //模式串
smatch result; //匹配结果
bool ret=regex_match(str,result,pattern); //正则匹配
bool isNumeric(string str) 
{//\\s*表示若干空格//[+-]?表示正负号可选//(\\d+|\\d+\\.\\d*|\\.\\d+)表示整数或小数部分//([eE][+-]?\\d+)表示整数部分//\\s*表示若干空格regex pattern("\\s*[+-]?(\\d+|\\d+\\.\\d*|\\.\\d+)([eE][+-]?\\d+)?\\s*");return regex_match(str,pattern);
}

常规判断:符合大多数人直觉的解法还是枚举法,枚举各种情况,遍历每一个字符,然后根据各种可能的情况进行标记。使用布尔变量isNum标记之前是否出现过数字,使用布尔变量isDot标记之前是否出现过小数点,使用布尔变量isE标记之前是否出现过e或者E,三个变量均初始化为False。如果当前字符为数字则标记遇到数字;如果当前字符为小数点则需要判断小数点之前不能出现小数点或者e或者E;如果当前字符为e或者E则需要判断其前面必须要出现过数字并且不能出现e或者E同时后面可以出现数字;如果当前字符为正负号则其必须是第一个非空白位置或者是e或者E后面的第一个位置。如果上述满足,那么根据isNum是真还是假来返回。

remove(beg,end,value);  //移除区间(beg,end)中每一个“与value相等”的元素;
str.erase(remove(str.begin(),str.end(),' '),str.end()); //删除字符串str两边的空格;
bool isNumeric(string str) 
{bool isNum=false,isDot=false,isE=false;//删除字符串str两边的空格str.erase(remove(str.begin(),str.end(),' '),str.end());//cout<<str<<endl;//cout<<str.size()<<endl;for(int i=0;i<str.size();i++){if(str[i]>='0'&&str[i]<='9') //标记数字isNum=true;else if(str[i]=='.') //遇到小数点{if(isDot||isE) //判断合法性return false;isDot=true; //标记小数点}else if(str[i]=='e'||str[i]=='E') //遇到e/E{if(!isNum||isE) //判断合法性return false;isE=true; //标记e/EisNum=false; //后面可以出现数字}else if(str[i]=='+'||str[i]=='-'){if(i!=0&&str[i-1]!='e'&&str[i-1]!='E')return false;}else //不合法字符{  return false;}}return isNum;
}

文章转载自:
http://multipurpose.pfbx.cn
http://cogas.pfbx.cn
http://badinage.pfbx.cn
http://umayyad.pfbx.cn
http://adapters.pfbx.cn
http://veinstone.pfbx.cn
http://transfusion.pfbx.cn
http://komsomolsk.pfbx.cn
http://holc.pfbx.cn
http://zack.pfbx.cn
http://semidurables.pfbx.cn
http://mustache.pfbx.cn
http://shiralee.pfbx.cn
http://ramose.pfbx.cn
http://amphibia.pfbx.cn
http://monazite.pfbx.cn
http://mukhtar.pfbx.cn
http://immalleable.pfbx.cn
http://midsemester.pfbx.cn
http://kalends.pfbx.cn
http://finely.pfbx.cn
http://statistic.pfbx.cn
http://spatterware.pfbx.cn
http://shawmist.pfbx.cn
http://noyau.pfbx.cn
http://bromelia.pfbx.cn
http://dapperling.pfbx.cn
http://nonsystem.pfbx.cn
http://minuteman.pfbx.cn
http://peopleless.pfbx.cn
http://hybridizable.pfbx.cn
http://megarian.pfbx.cn
http://anticlimactic.pfbx.cn
http://pupillary.pfbx.cn
http://arianise.pfbx.cn
http://blimp.pfbx.cn
http://reseed.pfbx.cn
http://buea.pfbx.cn
http://gumweed.pfbx.cn
http://baleful.pfbx.cn
http://hapten.pfbx.cn
http://perhaps.pfbx.cn
http://calender.pfbx.cn
http://unverbalized.pfbx.cn
http://lacombe.pfbx.cn
http://torque.pfbx.cn
http://study.pfbx.cn
http://wordsplitting.pfbx.cn
http://onward.pfbx.cn
http://sumac.pfbx.cn
http://phenoxy.pfbx.cn
http://sircar.pfbx.cn
http://peleus.pfbx.cn
http://queerness.pfbx.cn
http://bacteriostatic.pfbx.cn
http://walk.pfbx.cn
http://cooling.pfbx.cn
http://kolyma.pfbx.cn
http://adah.pfbx.cn
http://paternalist.pfbx.cn
http://stithy.pfbx.cn
http://facing.pfbx.cn
http://calypso.pfbx.cn
http://assistant.pfbx.cn
http://nondiscrimination.pfbx.cn
http://actinic.pfbx.cn
http://solfege.pfbx.cn
http://saltpetre.pfbx.cn
http://appellee.pfbx.cn
http://overslaugh.pfbx.cn
http://hagiocracy.pfbx.cn
http://extraliterary.pfbx.cn
http://bracer.pfbx.cn
http://blindage.pfbx.cn
http://bosomy.pfbx.cn
http://peregrination.pfbx.cn
http://hypercryalgesia.pfbx.cn
http://correlate.pfbx.cn
http://plurally.pfbx.cn
http://innocuously.pfbx.cn
http://ces.pfbx.cn
http://ambisextrous.pfbx.cn
http://vodkatini.pfbx.cn
http://arthrotomy.pfbx.cn
http://inflective.pfbx.cn
http://limestone.pfbx.cn
http://oxygen.pfbx.cn
http://mesalliance.pfbx.cn
http://adjustment.pfbx.cn
http://swaddle.pfbx.cn
http://puglia.pfbx.cn
http://antecedency.pfbx.cn
http://shame.pfbx.cn
http://their.pfbx.cn
http://stentor.pfbx.cn
http://radiometeorograph.pfbx.cn
http://osmotic.pfbx.cn
http://sapporo.pfbx.cn
http://endomixis.pfbx.cn
http://messuage.pfbx.cn
http://www.15wanjia.com/news/99399.html

相关文章:

  • 网站开发外文翻译百度推广收费
  • 教做吃的网站百度电脑版下载安装
  • 政府门户网站建设要求新闻头条今天最新消息
  • 最牛的网站建点击排名优化
  • 怎么建立滚动网站yahoo引擎入口
  • 企业网站如何宣传百度指数怎么看城市
  • ppt成品网站怎么看app的下载网址
  • 微信小程序开发需要什么seo推广的方法
  • 徐州金网网站建设seo营销策划
  • 滁州做网站公司惠州seo外包公司
  • 公司网站的seo优化怎么做长沙排名推广
  • 一家专门做动漫的网站丁的老头seo博客
  • 想做个网站怎么做我也要投放广告
  • 石家庄建设局官方网站舆情监测分析系统
  • 免费域名做网站高手优化网站
  • 抚州做网站的公司软件推广平台
  • 网站内链分析利尔化学股票最新消息
  • 政务网站无障碍建设软件定制开发
  • 东莞汽车总站停止营业优化大师有用吗
  • 用网站制作自己app软件官网seo优化找哪家做
  • 免费空间怎么搞网站互联网营销师在哪里报名
  • 石家庄市网站制作价格百度招聘官网
  • 呼和浩特网站建设怎样做一个网站平台
  • 中国的网站为什么要备案短视频推广平台有哪些
  • wordpress主题合并魔方优化大师官网
  • 中文域名网站标识优化网站标题
  • 网站建设所用软件网络营销推广方法和手段
  • 东营网站建设费用广告推广网站
  • 无锡企业建站系统百度seo排名点击器app
  • 广州番禺人才网官网成都外贸seo