数组和整数之间的转换
2016-01-04 18:55
197 查看
今天在leetcode上面做到的第二个题是:
https://leetcode.com/problems/string-to-integer-atoi/
是关于字符串转为整数的类型。
题目分析:
该问题的内容很长,其实主要是描述一些可能的边界问题。对于整数来说,两大问题就是是正负号的问题和是整数范围是否越界的问题。
思路比较简单,就是先去掉多余的空格字符,然后读符号(注意正负号都有可能,也有可能没有符号),接下来按顺序读数字,结束条件有三种情况:
异常字符出现(按照atoi函数的规定是,把异常字符起的后面全部截去,保留前面的部分作为结果); 数字越界(返回最接近的整数); 字符串结束。
之后又找了这一类的题目:http://www.cnblogs.com/bluestorm/p/3168719.html
此处记录一下字符串转为数字的代码:
int atoi(string str)
{
int temp = 0;
https://leetcode.com/problems/string-to-integer-atoi/
是关于字符串转为整数的类型。
题目分析:
该问题的内容很长,其实主要是描述一些可能的边界问题。对于整数来说,两大问题就是是正负号的问题和是整数范围是否越界的问题。
思路比较简单,就是先去掉多余的空格字符,然后读符号(注意正负号都有可能,也有可能没有符号),接下来按顺序读数字,结束条件有三种情况:
异常字符出现(按照atoi函数的规定是,把异常字符起的后面全部截去,保留前面的部分作为结果); 数字越界(返回最接近的整数); 字符串结束。
之后又找了这一类的题目:http://www.cnblogs.com/bluestorm/p/3168719.html
此处记录一下字符串转为数字的代码:
int atoi(string str)
{
int temp = 0;
int len = str.length(); int i = 0; int flag = 1; while(str[i] == " ")i++; if(str[i] == '+')
{
i++;
}
else if(str[i] == '-')
{
flag = -1;
i++;
}
while(i < len)
{
if(str[i] < '0' || str[i] > '9')
break;
if(temp <= INT_MAX/10)
temp = temp * 10 + (str[i] -'0');
else
return flag > 0?INT_MAX:INT_MIN;
if(temp < 0)
return flag > 0?INT_MAX:INT_MIN;具体解释见:http://segmentfault.com/a/1190000000452052
i++;
}
return flag > 0?temp:-temp;
}
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- PostgreSQL ERROR: invalid escape string 解决办法
- 浅谈C++中的string 类型占几个字节
- 标准C++类string的Copy-On-Write技术
- C++实现string存取二进制数据的方法
- C#中string和StingBuilder内存中的区别实例分析
- PHP STRING 陷阱原理说明
- c#中 String和string的区别介绍
- C#实现的图片、string相互转换类分享
- asp.net String.IsNullOrEmpty 方法
- JavaScript中字符串(string)转json的2种方法
- C#中string用法实例详解
- C#中的DataSet、string、DataTable、对象转换成Json的实现代码
- Javascript实现Array和String互转换的方法