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

上海做网站好的公司/珠海seo推广

上海做网站好的公司,珠海seo推广,嘉兴网页设计培训,苹果做封面下载网站昨天就看到说:今天武汉会有超强冷空气光临,果然没有迟到。早上在学校一广场边上的石凳子上读英语,冷风直嗖嗖的往衣服里钻,冻得我紧紧的抱住像200斤的自己,边吃包子边发抖的读英语,这滋味怎一个爽字了得&am…

dca459eebad91b970389274be55675d1.png

昨天就看到说:今天武汉会有超强冷空气光临,果然没有迟到。早上在学校一广场边上的石凳子上读英语,冷风直嗖嗖的往衣服里钻,冻得我紧紧的抱住像200+斤的自己,边吃包子边发抖的读英语,这滋味怎一个爽字了得!!!


实现 atoi,将字符串转为整数

该函数首先根据需要丢弃任意多的空格字符,直到找到第一个非空格字符为止。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。

字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。

当字符串中的第一个非空字符序列不是个有效的整数;或字符串为空;或字符串仅包含空白字符时,则不进行转换。

若函数不能执行有效的转换,返回 0。

这一题其实没什么算法可言,主要的困难就是每一种分类情况要分清楚,稍微弄混淆了就有可能出错,有几点注意的地方我提下:

  1. 题目所给的字符串里面可能会有空格符,这个对我们来说是不需要的,所以我们可以先用str.split()将原始字符串分割成几个不含空格符的子字符串,这样解题速度会更快些。
  2. 另外就是注意:我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。如果数值超过可表示的范围,则返回 INT_MAX (231 − 1) 或 INT_MIN (−231) 。

代码如下:

class Solution:def myAtoi(self, str):""":type str: str:rtype: int"""str_split = str.split()str_list = []if len(str_split) == 0:return 0for indice in range(len(str_split)):if str_split[indice][0] == '-' and len(str_split[indice]) >= 2:str_list.append('-')for str_indice in range(1, len(str_split[indice])):if '0' <= str_split[indice][str_indice] <= '9':str_list.append(str_split[indice][str_indice])else:breakif len(str_list) == 1:return 0else:str_copy = int(''.join(str_list))if str_copy <= -2**31:return -2**31if str_copy >= 2**31 - 1:return 2**31 - 1return  str_copyelif str_split[indice][0] == '+' and len(str_split[indice]) >= 2:for str_indice in range(1, len(str_split[indice])):if '0' <= str_split[indice][str_indice] <= '9':str_list.append(str_split[indice][str_indice])else:breakif len(str_list) == 0:return 0else:str_copy = int(''.join(str_list))if str_copy <= -2 ** 31:return -2 ** 31if str_copy >= 2 ** 31 - 1:return 2 ** 31 - 1return str_copyelif '0' <= str_split[indice][0] <= '9':for str_indice in range(len(str_split[indice])):if '0' <= str_split[indice][str_indice] <= '9':str_list.append(str_split[indice][str_indice])else:breakstr_copy = int(''.join(str_list))if str_copy <= -2 ** 31:return -2 ** 31if str_copy >= 2 ** 31 - 1:return 2 ** 31 - 1return str_copyelse:return 0

执行时间你还别说,还算是很不错的,虽然代码较长,但还是挺欣喜的。

a2201c23ada385eed96ef55ba5037529.png

2019/5/18 12:03更新

至于各种分类情况我再强调一些细节,因为本题考查的也是各种情况的全面性。

  1. 首字符为"+", "-"符号,需要用标志符记录下来;
  2. 首字符为字母或其它非数字以及"+", "-"符号,说明当前字符串不合标准,立即退出返回0;
  3. 其他位置上只要不是数字,也立即退出返回前面得到的符合标准的字符串;

这儿有一种情况是题目中没有给出的,刷题时报错了,所以就想分享一下。就是类似于"3.1415"这样的浮点数,结果是'3",也就是说结果只识整数,不转化浮点数。

代码如下:

class Solution:# 此题还需注意的就是类似于3.1415的浮点数的出现了def myAtoi(self, str):""":type str: str:rtype: int"""# 首先将给定字符串以空格符切分str_split = str.split()if len(str_split) == 0:return 0# 我们只需要考虑str_split[0]即可detect_str = str_split[0]# 分别定义选取字符串转为整数的起始和终止下标值start = 0end = 0# 定义标志符来区分首字符是否为“+”“-”;“+”用1来表示,反之用-1表示flag = 1for index in range(len(detect_str)):# 如果首字符为“+”“-”,则我们相应改变flag的值,并且都将start与end的值相应+1if index == 0 and detect_str[index] in ["-", "+"]:flag = 1 if detect_str[index] == "+" else -1start += 1end += 1# 如果当前字符为字母,立即退出elif detect_str[index].isdigit():end += 1# 其它的各种情况均不符合,立即退出 else:break# 通过start与end的值得到我们需要的整数,此处注意正负号new_num = int(detect_str[start:end])*flag if start < end else 0# 最后的结果别忘了其取值范围是[-2**31, 2**31-1]return min(new_num, 2**31-1) if new_num >= 0 else max(new_num, -2**31)if __name__ == "__main__":init_str = "3.14159"str_to_int = Solution().myAtoi(init_str)print(str_to_int)

执行效率出奇的高,达到了100%

45a57df8487c2e3e000b25ae070a9a0e.png
http://www.jmfq.cn/news/5302459.html

相关文章:

  • 新疆建设网二级域名网站/厦门百度推广开户
  • 必要网站用什么做的/经典软文范例大全
  • 阿里巴巴做网站多少钱/品牌推广活动方案
  • 怎样进网站空间/福建省人民政府
  • 买个网站多少钱/网络搭建教程
  • wordpress熊掌号百度主动提交/优化大师软件大全
  • 微信网站/dw软件怎么制作网页
  • 金融网站建设多少钱/建立个人网站
  • 北京建网站需要多少钱/百度推广助手
  • 青岛城阳软件网站开发/seo怎样优化网站
  • 怎样做网站导航栏/网络营销策划ppt范例
  • 公司网站建设哪家正规/搜索引擎营销总结
  • 所有北京网站建设公司/推广软件排行榜前十名
  • 接网站制作/百度怎么发广告
  • 蓝色 网站/河南疫情最新消息
  • 企业为何要做网站/网站设计就业
  • 石景山 网站建设/营销推广的平台
  • 免费建立小程序网站/国家高新技术企业查询
  • 在线甜品网站开发书/视频号推广
  • 园林公司网站模板/怎么给产品做网络推广
  • 一个大学网站做的好坏于否的标准/百度指数app下载
  • 公司做网站主机是什么用途/以下哪个单词表示搜索引擎优化
  • 南通 外贸建站/网络营销公司有哪些公司
  • 做机械网站/百度的竞价排名是哪种方式
  • 优化公司组织结构/做网站优化推广
  • seo网站服务公司/营销案例100例简短
  • 政府网站集约化建设能做什么/推广平台收费标准
  • 母婴网站建设初衷/app推广团队
  • 手机电影网站建设/企点qq
  • 宿迁做网站 宿迁网站建设/辅导机构