(字符串) leetcode
Posted bella2017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(字符串) leetcode相关的知识,希望对你有一定的参考价值。
思路:判断各种边界条件。
1)首先过滤字符串前面的空格,即找到第一个不为空格的字符;
2)如果第一个字符是+或-,设置flag值;
3)接下来的字符如果在‘0‘ - ‘9‘ 范围内,则转换为数字,否则结束循环; 注意上一步中,如果结果已经大于INT_MAX或小于INT_MIN,则直接返回INT_MAX或INT_MIN;
4)如果过滤掉空格后的字符不是一个有效的整数字符,则返回0;
5)整数之后可能有多余的其他字符,可以忽略不计。
class Solution public: int myAtoi(string str) int s = str.size(); if(s==0) return 0; int i=0, flag=1, cur; //用i遍历,flag存储正负号 long ans = 0; //计算数字的值,因为可能超出int边界,故定义为long while(i<s && str[i] == ‘ ‘) //过滤前面的空格 i++; if(str[i]==‘-‘ || str[i] == ‘+‘) //处理 + 和 - if(str[i] == ‘-‘) flag = -1; i++; while(i<s && str[i]>=‘0‘ && str[i]<=‘9‘) cur = str[i] - ‘0‘; ans = ans*10 + cur; if(ans * flag < INT_MIN) return INT_MIN; if(ans * flag > INT_MAX) return INT_MAX; i++; return ans*flag; ;
以上是关于(字符串) leetcode的主要内容,如果未能解决你的问题,请参考以下文章