zoukankan      html  css  js  c++  java
  • Leetcode_StringToInteger

    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的值。之后写。状态转换机的使用。

  • 相关阅读:
    二进制运算基础
    初识Tomcat系统架构
    MySQL InnoDB引擎锁的总结
    Java并发编程:并发容器之CopyOnWriteArrayList
    java类的加载机制
    Nginx实现tomcat集群进行负载均衡
    Java序列化对象为字符串并将字符串反序列化为对象
    数据库的四大特性及事务的隔离级别
    人性的弱点
    华为工作法摘抄笔记
  • 原文地址:https://www.cnblogs.com/litian0605/p/5174684.html
Copyright © 2011-2022 走看看