8. 字符串转换整数 (atoi)
1.题目描述及示例
-
题目描述
-
示例
2.题解思路及代码
-
思路
先从头开始遍历,只要遇到的第一个非空格字符是(-或+或数字)这些中的一个,就跳出来,接下来就是常规套路了。如果第一个非空格字符不是上述的情况,直接返回0。 -
代码
public int myAtoi(String s) {
int tag=0;
int start=0;
for (int i=0;i<s.length();i++)
{
char c=s.charAt(i);
if (c==' ')
continue;
else if (c=='-')
{
tag=1;
start=i+1;
break;
}
else if (c=='+')
{
start=i+1;
break;
}
else if (c-'0'>=0&&c-'0'<=9)
{
start=i;
break;
}
else
return 0;
}
double sum=0;
for (int i=start;i<s.length();i++)
{
char c=s.charAt(i);
if (c-'0'>=0&&c-'0'<=9)
{
sum=sum*10+c-'0';
if (tag==0)
{
if (sum>=Integer.MAX_VALUE)
return Integer.MAX_VALUE;
}
else
{
if (-sum<=Integer.MIN_VALUE)
return Integer.MIN_VALUE;
}
}
else
break;
}
if (tag==1)
sum=-sum;
return (int)sum;
}