Leetcode_StringToInteger
2016-02-01 10:34
295 查看
public class Solution {
public int myAtoi(String str) {
if(str.length()==0) return 0;
int sign=1;int m=0;//直接定义i=0,n=s.length();使用while循环,这样可以让i在代码任意位置都可以访问。
for(int i=0;i<str.length();i++){
if(!Character.isWhitespace(str.charAt(i)))
{ m=i;
break;}
}
if(m<str.length()&&str.charAt(m)=='-') {sign=-1;m++;}
else if(m<str.length()&&str.charAt(m)=='+') {m++;}
int sum=0;
while(m<str.length()&&Character.isDigit(str.charAt(m))){
if(sum>Integer.MAX_VALUE/10)//每次做运算前先判断是否可能会overflow。
return sign==1?Integer.MAX_VALUE:Integer.MIN_VALUE;
if(sum==Integer.MAX_VALUE/10&&Character.getNumericValue(str.charAt(m))>7){
return sign==1?Integer.MAX_VALUE:Integer.MIN_VALUE;
}
sum=sum*10+Character.getNumericValue(str.charAt(m));
m++;
}
return sign*sum;
}
}
//后续类似题:Valid Number。保证字符串中每一个字符都被测试到,定义isNumber变量,随着不断读字符串,动态更改isNumber的值。之后写。状态转换机的使用。
public int myAtoi(String str) {
if(str.length()==0) return 0;
int sign=1;int m=0;//直接定义i=0,n=s.length();使用while循环,这样可以让i在代码任意位置都可以访问。
for(int i=0;i<str.length();i++){
if(!Character.isWhitespace(str.charAt(i)))
{ m=i;
break;}
}
if(m<str.length()&&str.charAt(m)=='-') {sign=-1;m++;}
else if(m<str.length()&&str.charAt(m)=='+') {m++;}
int sum=0;
while(m<str.length()&&Character.isDigit(str.charAt(m))){
if(sum>Integer.MAX_VALUE/10)//每次做运算前先判断是否可能会overflow。
return sign==1?Integer.MAX_VALUE:Integer.MIN_VALUE;
if(sum==Integer.MAX_VALUE/10&&Character.getNumericValue(str.charAt(m))>7){
return sign==1?Integer.MAX_VALUE:Integer.MIN_VALUE;
}
sum=sum*10+Character.getNumericValue(str.charAt(m));
m++;
}
return sign*sum;
}
}
//后续类似题:Valid Number。保证字符串中每一个字符都被测试到,定义isNumber变量,随着不断读字符串,动态更改isNumber的值。之后写。状态转换机的使用。
相关文章推荐
- webpack入门(五)webpack CLI
- Oracle 查看正在运行的Job
- Struts2+AJAX获取json数据
- Linux 挂载光盘:mount: you must specify the filesystem
- 打印堆栈
- 数据库之Mac下配置MySQL
- 通过快照回滚块数据
- Troubleshoot Utility2:Enroll Instance 出现Collection Set 必须停止的 Error
- java 网络编程(二)----UDP基础级的示例
- tomcat 大并发报错 Maximum number of threads (200) created for connector with address null and port 8080
- Oracle 创建表空间
- css 居中
- linux查看文件系统块大小与内存页大小
- Worktile 中百万级实时消息推送服务的实现
- 最近用到的mysql函数
- android Studio/SDK代理设置
- jquery.validate使用攻略 第一部
- Java反射机制应用(JavaBean转换Map形式)
- rpm或者yum 命令安装JDK后的JDK位置
- Web应用程序项目XX已配置为使用IIS