题目描述
数据应该是有所加强,之前的代码都用不了了
样例
b1232
123bsd
23432
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度 O(n)
java 代码
class Solution {
public int strToInt(String str) {
if(str.length() ==0) return 0;
int index = 0;
//过滤首位数是字母的
if(Character.isLetter(str.charAt(index))) return 0;
//过滤空格
while(index < str.length() && str.charAt(index) == ' ')index++;
if(index == str.length()-1) return 0;
///过滤+-符号
int flag = 1;
if(str.charAt(index) == '+'){
flag = 1;
index++;
}
if(str.charAt(index) == '-'){
flag = -1;
index++;
}
//设置成long,到后面在判断最大值和最小值
long res = 0;
for(int i = index ;i<str.length();i++){
if(str.charAt(i)>= '0' && str.charAt(i)<='9'){
res = res *10 + str.charAt(i)-'0';
}else{
//过滤中间不为0~9的数
continue;
}
}
//乘上符号
res = res*flag;
if(res >= Integer.MAX_VALUE) return Integer.MAX_VALUE;
if(res <= Integer.MIN_VALUE) return Integer.MIN_VALUE;
return (int)res;
}
}