题目描述

将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。

示例

输入

+2147483647
1a33

输出

2147483647
0

题目描述

因为题目要求不能用库函数,这就很头疼。。然后百度了一下,说是可以把字符串转化为ascii码(的十进制值),对照表http://ascii.911cha.com/,转换函数是ord,也就是返回字符的对应ascii码,而chr则正好和ord相反,把一个整数转换为对应的字符。

class Solution:
def StrToInt(self, s):
res,pos,mult = 0,1,1 ###res是初始返回值;pos是正负标记;mult是位数的乘数,个位是1,十位是10,百位是100
if not s:#字符串为空
return res
elif len(s)==1:#字符串长度为1单独讨论
if 48 < ord(s) <= 57:
return ord(s)-48
else:
return 0
elif s[0]=='-' or s[0]=='+':#字符串前面有正负号单独讨论
if s[0]=='-' and s[1]!='':
pos = -1
s = s[1:]
elif s[0]=='-' and s[1]=='':
return res
elif s[0] =='+' and s[1]!='':
pos = 1
s = s[1:]
elif s[0]=='+' and s[1]=='':
return res
for i in range(len(s)-1,-1,-1):#对去掉正负号的字符串依次取值
if '' >= s[i] >= '':
res += (ord(s[i])-48)*mult
mult = mult*10
else:
return 0
return res*pos

最新文章

  1. 在 ML2 中配置 OVS flat network - 每天5分钟玩转 OpenStack(133)
  2. JavaScript 对数据处理的5个API
  3. 一张图告诉你,只会Node.JS还不够!
  4. c#中按键小技巧
  5. Unity3d NavMesh获得地面高度
  6. static const vs. extern const
  7. maxscript, 批量导出物体
  8. curl_setopt用此函数设置上传文件请求的兼容性调整
  9. GEOS库学习之五:与GDAL/OGR结合使用
  10. Magento修改邮件模板内容
  11. java复用和传参
  12. 对自己的文件使用keystore签名
  13. swift:创建九宫格
  14. Window_Open详解
  15. 动态规划(区间DP):HDU 5115 Dire Wolf
  16. 《A First Course in Probability》-chape6-随机变量的联合分布-基本概念
  17. android之针对fragment多次调用onCreateView的问题
  18. 总结C++中取成员函数地址的几种方法
  19. svn conflicts: local delete, incoming delete upon update
  20. MongoDB安全策略

热门文章

  1. Docker构建YApi镜像, Docker安装YApi, Docker部署YApi
  2. SpringBoot(十一):springboot2.0.2下配置mybatis generator环境,并自定义字段/getter/settetr注释
  3. Centos7中离线安装DockerCE最新版
  4. Java WebSocket实现网络聊天室(群聊+私聊)
  5. 如何卸载EXCEL中的插件?
  6. Spark源码分析系列(目录)
  7. 【转载 Hadoop&amp;Spark 动手实践 2】Hadoop2.7.3 HDFS理论与动手实践
  8. css3+svg实现波浪图
  9. 利用SEH防范BP(int 3)断点
  10. XCode10 运行app报错