剑指offer之把字符串转换成整数
Posted 我是畅游海
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer之把字符串转换成整数相关的知识,希望对你有一定的参考价值。
题目:
把字符串转换成整数
链接:
https://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e?tpId=13&tqId=11202&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
题目描述:
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述: 输入一个字符串,包括数字字母符号,可以为空
输入例子:+2147483647 ,1a33
输出例子:21474838647 ,0
思路:
这个题目较简单,没有涉及科学计数
非数字的情况如+,-只能出现在第一位,所以对第一位数字进行判断,后续位置只能是数字,
代码:
1 class Solution{ 2 public: 3 int StrToInt(string str){ 4 int len = str.length(); 5 if(len <= 0){ 6 return 0; 7 } 8 int flag =1; 9 int sum = 0; 10 for(int i = 0;i<len;++i){ 11 if(i == 0){ 12 if(str[i] == ‘-‘){ 13 flag = -1; 14 } 15 else if(str[i]>=‘0‘ && str[i] <= ‘9‘){ 16 sum += (str[i] - ‘0‘); 17 } 18 else if(str[i] == ‘+‘){ 19 flag == 1; 20 } 21 else{ 22 return sum; 23 } 24 } 25 else if( str[i] < ‘0‘ || str[i] > ‘9‘){ 26 return 0; 27 } 28 else{ 29 sum = sum*10 + str[i]- ‘0‘; 30 } 31 } 32 return sum*flag; 33 } 34 };
以上是关于剑指offer之把字符串转换成整数的主要内容,如果未能解决你的问题,请参考以下文章