zoukankan      html  css  js  c++  java
  • leetcode之String to Integer (atoi)

    ‘’是c/c++语言中的字符串结束符,在ASCII字符集中对应数字0。

    java中不是。

    另外字符相减是ASSIC码相减

    0的ASSIC码是49

    这道题是剑指offer上的第49题,模拟了整个面试的过程。一定要注意代码的鲁棒性,边界条件以及空,或者特殊值

    下面附上AC代码,用java实现和书上的略不同,不过思想是一致的:

    public int myAtoi(String str) {
            if(str == null){
                return 0;
            }
            str = str.trim();
            if(str.length()==0){
                return 0;
            }
            int sign = 1;
            int index = 0;
            if(str.charAt(index)=='+'){
                index++;
            }else if(str.charAt(index)=='-'){
                sign = -1;
                index++;
            }
            long num = 0;
            for(;index<str.length();index++){
                if(str.charAt(index)<'0'||str.charAt(index)>'9')
                    break;
                num = num*10 + (str.charAt(index)-'0');
                if (num > Integer.MAX_VALUE ) {
                    break;
                }
            }
               if (num * sign >= Integer.MAX_VALUE) {
                return Integer.MAX_VALUE;
            }
                if (num * sign <= Integer.MIN_VALUE) {
                return Integer.MIN_VALUE;
            }
            
            return (int)num * sign; 
            
        }
    

      

  • 相关阅读:
    网站数据库
    提笔不知道说啥
    预祝大家新年快乐
    又..
    明日出发
    吸气呼气
    网吧
    光阴似箭
    <转>生活中的各种食品安全问题
    老了吗?
  • 原文地址:https://www.cnblogs.com/gracyandjohn/p/4569905.html
Copyright © 2011-2022 走看看