[LeetCode]8. String to Integer (atoi)

转载 2016年09月01日 15:56:44

Easy

Implement atoi to convert a string to an integer.

Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.

Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.

The string can contain additional characters after those that form the integral number, which are ignored and have no effect on the behavior of this function.

If the first sequence of non-whitespace characters in str is not a valid integral number, or if no such sequence exists because either str is empty or it contains only whitespace characters, no conversion is performed.

If no valid conversion could be performed, a zero value is returned. If the correct value is out of the range of representable values, INT_MAX (2147483647) or INT_MIN (-2147483648) is returned.

public class Solution {
    public int myAtoi(String str) {
        long sum = 0;
         if(!str.equals("")){
             char[] mm = str.toCharArray();
             int[] ii = new int[mm.length+1];
             boolean begin = false;
             int b = 0;
             for(int a=0;a<mm.length;a++){
                 if(mm[a]==' '&&!begin)
                     continue;
                 if(!begin&&(mm[a]=='+'||mm[a]=='-'||(mm[a]>='0'&&mm[a]<='9'))){
                     ii[0] = mm[a]=='-'?-1:1;
                     if(a<mm.length-1&&(mm[a]=='-'||mm[a]=='+'))
                         a++;
                     begin = true;
                 }

                 if(mm[a]>='0'&&mm[a]<='9'){
                     ii[++b] = mm[a]-'0';
                 }else{
                     break;
                 }
             }
             for(int x=0;b>0;b--){
                 sum += ii[b]*(Math.pow(10, x));
                 x++;
             }
             sum *= ii[0];
             if(sum>2147483647)
                 sum = Integer.MAX_VALUE;
             if(sum<-2147483648)
                 sum = Integer.MIN_VALUE;
         }
         return (int)sum;
    }
}

4ms:

            if (str == null || str.length() < 1)
                return 0;

            // trim white spaces
            str = str.trim();

            char flag = '+';

            // check negative or positive
            int i = 0;
            if (str.charAt(0) == '-') {
                flag = '-';
                i++;
            } else if (str.charAt(0) == '+') {
                i++;
            }
            // use double to store result
            double result = 0;

            // calculate value
            while (str.length() > i && str.charAt(i) >= '0' && str.charAt(i) <= '9') {
                result = result * 10 + (str.charAt(i) - '0');
                i++;
            }

            if (flag == '-')
                result = -result;

            // handle max and min
            if (result > Integer.MAX_VALUE)
                return Integer.MAX_VALUE;

            if (result < Integer.MIN_VALUE)
                return Integer.MIN_VALUE;

            return (int) result;

【LeetCode-面试算法经典-Java实现】【008-String to Integer (atoi) (字符串转成整数)】

【008-String to Integer (atoi) (字符串转成整数)】实现一个atoi函数,将字符串转成整形。要点:考虑所有的输入情况。前导字符是+或-或者没有,接下来输入的是数字,数字不能...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月18日 06:30
  • 2900

Leetcode刷题记——8. String to Integer (atoi)(字符串转整数)

一、题目叙述: mplement atoi to convert a string to an integer. Hint: Carefully consider all ...
  • sunshine0_0
  • sunshine0_0
  • 2016年10月08日 20:06
  • 120

8. String to Integer (atoi) 字符串转为int类型的所有可能情况

8. String to Integer (atoi) 问题:输入一个字符串,将字符串转为int类型,处理所有可能的输入情况。可能的输入情况:明天早上来总结,先传代码吧。。自己写的:(java)pub...
  • u010223431
  • u010223431
  • 2016年05月08日 21:28
  • 960

8. String to Integer (atoi)(将输入的字符串转化为整数)

官网Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases...
  • qq_16949707
  • qq_16949707
  • 2016年09月19日 10:29
  • 138

python常用模块介绍之一:string模块

简介:        string模块主要用于对字符串进行操作。string里的许多特性都已经移植到str和unicode对象的方法里去了。下面主要讨论下string模块的常用方法。 l 函数 1. ...
  • bc_vnetwork
  • bc_vnetwork
  • 2016年06月29日 10:59
  • 5670

leetCode 8. String to Integer (atoi) (字符串转整形) 解题思路和方法

问题: String to Integer (atoi)  Implement atoi to convert a string to an integer. Hint: Carefully...
  • xygy8860
  • xygy8860
  • 2015年07月04日 21:59
  • 475

leetcode——String to Integer (atoi) 字符串转换为整型数(AC)

Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cas...
  • axiaochong
  • axiaochong
  • 2014年06月06日 22:04
  • 951

String与Integer的相互转化

String与Integer相互转化时,一定要注意空指针异常。
  • u011983531
  • u011983531
  • 2016年03月14日 17:16
  • 9251

String to Integer (atoi)(将字符窜转换成数字)

Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases....
  • u010343650
  • u010343650
  • 2016年11月27日 22:54
  • 145

PHP匿点之string转int

今天遇到一个奇怪的问题
  • hao508506
  • hao508506
  • 2016年09月20日 23:02
  • 567
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[LeetCode]8. String to Integer (atoi)
举报原因:
原因补充:

(最多只允许输入30个字)