失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 把字符串转换成整数

把字符串转换成整数

时间:2021-01-30 21:59:41

相关推荐

把字符串转换成整数

文章目录

1. 题目描述2. 解题思路3. 代码实现

1. 题目描述

题目链接:把字符串转换成整数

2. 解题思路

用一个index全程记录字符串下标。按照题目要求的点,先排除前导空格,再检查符号,最后转换数字,遇到非数字即停止转换,直接输出前面部分,最后注意边界等情况。一个遍历即可解决。

算法如下:

(1)去掉无用的前导空格

(2)第一个非空字符为+或者-号时,作为该整数的正负号,如果没有符号,默认为正数

(3)判断整数的有效部分,确定符号位之后,与之后面尽可能多的连续数字组合起来成为有效整数数字,如果没有有效的整数部分,那么直接返回 0

(4)将字符串前面的整数部分取出,后面可能会存在存在多余的字符(字母,符号,空格等),这些字符可以被忽略,它们对于函数不应该造成影响

注意:

(1)将字符转换为数字的方法:c - '0'

(2)求和公式:sum = sum * 10 + (c - '0')

3. 代码实现

代码示例

class Solution {public:int StrToInt(string str) {// 求和公式:sum = sum * 10 + (c - '0')int index = 0; //遍历字符串下标int sign = 1; //符号位long long sum = 0; //存放整数//排除前导空格(也可以不写,因为题目没有说有空格)while (index < str.size()){if (str[index] != ' ') //如果第一个字符不是空格,那么直接退出break;index++;}//判断正负数的情况if (str[index] == '-') {sign = -1;index++;}else if (str[index] == '+') {index++;}//开始遍历while (index < str.size()){if (str[index] >= '0' && str[index] <= '9') {//如果字符合法,那么直接累加sum = sum * 10 + (str[index] - '0');index++;}else {//否则直接返回0sum = 0;break;}}sum *= sign; //最后乘以符号位return sum;}};

如果觉得《把字符串转换成整数》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。