1. 程式人生 > >字串轉整數(String to Integer (atoi))

字串轉整數(String to Integer (atoi))

public class StringtoInteger {
    public int myAtoi(String str) {
        if (str == null)
            return 0;
        str = str.trim();
        if (str.equals("") || str.equals("+") || str.equals("-"))
            return 0;
        if (str.length() == 1){
            if (str.charAt(0) >= '0' && str.charAt(0) <= '9')
                return str.charAt(0) - '0';
            else
                return 0;
        }

        if (str.length() > 1 && (str.charAt(0) == '+' || str.charAt(0) == '-')){
            if (str.charAt(1) < '0' || str.charAt(1) > '9')
                return 0;
        }else if (str.length() > 1 && (str.charAt(0) < '0' || str.charAt(0) > '9')){
            return 0;
        }

        if (str.length() > 1 && (str.charAt(1) == '+' || str.charAt(1) == '-'))
            return 0;

        str = maxLengthInteger(str);
        if (str.charAt(0) == '-'){
            if (str.length() > 11){
                return -2147483648;
            }
            if (str.length() == 11 && str.compareTo("-2147483648") > 0){
                return -2147483648;
            }
            return Integer.parseInt(str);
        }else if (str.charAt(0) == '+'){
            if (str.length() > 11){
                return 2147483647;
            }
            if (str.length() == 11 && str.compareTo("+2147483647") > 0){
                return 2147483647;
            }
            return Integer.parseInt(str.substring(1));
        }else {
            if (str.length() > 10)
                return 2147483647;
            if (str.length() == 10 && str.compareTo("2147483647") > 0)
                return 2147483647;
            return Integer.parseInt(str);
        }
    }

    public String maxLengthInteger(String str){
        int k = 0;
        if (str.charAt(0) == '-' || str.charAt(0) == '+'){
            k = 1;
            while(true) {
                if (k > str.length() - 1 || (str.charAt(k) < '0' || str.charAt(k) > '9')) {
                    k--;
                    break;
                }
                else
                    k++;
            }
        }else{
            while(true) {
                if (k > str.length() - 1 || (str.charAt(k) < '0' || str.charAt(k) > '9')) {
                    k--;
                    break;
                }
                else
                    k++;
            }
        }
        return str.substring(0, k + 1);
    }
}

相關推薦

字串整數String to Integer (atoi)

public class StringtoInteger { public int myAtoi(String str) { if (str == null) return 0; str = str.trim(); if (str

LeetCode : 13. 羅馬數字整數Roman To Integer解答

13. 羅馬數字轉整數 羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5

[LeetCode]羅馬數字整數Roman to Integer

題目描述 羅馬數字包含以下七種字元:I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C

LeetCode——羅馬數字整數Roman to Integer

羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C 100 D

【LeetCode-面試算法經典-Java實現】【008-String to Integer (atoi) 字符串整數

pre except tco ecif hid pan format 說明 elf 【008-String to Integer (atoi) (字符串轉成整數)】 【LeetCode-面試算法經典-Java實現】【全部題目文件夾索引】 原題

[Swift]LeetCode8. 字串整數 (atoi) | String to Integer (atoi)

Implement atoi which converts a string to an integer. The function first discards as many whitespace characters as necessary until the firs

[leetcode]8. String to Integer (atoi)字串整數

Implement atoi which converts a string to an integer. The function first discards as many whitespace characters as necessary until the firs

Leetcode8.String to Integer (atoi)字串整數(atoi)

實現 atoi,將字串轉為整數。 該函式首先根據需要丟棄任意多的空格字元,直到找到第一個非空格字元為止。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元組合

LeetCode-8:String to Integer (atoi)(字串整數) -- Medium

題目: Implement atoi which converts a string to an integer. The function first discards as many whitespace characters as necessary

Leetcode#8. String to Integer (atoi)字串數字

宣告:題目解法使用c++和Python兩種,重點側重在於解題思路和如何將c++程式碼轉換為python程式碼。 題目 Implement atoi to convert a string to an integer. Hint: Carefully con

[LeetCode] String to Integer (atoi) 字串轉為整數

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 an

String to Integer (atoi) 字串轉換整數 (atoi)

請你來實現一個 atoi 函式,使其能將字串轉換成整數。 首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第一個非空格的字元為止。 當我們尋找到的第一個非空字元為正或者負號時,則將該符號與之後面儘可能多的連續數字組合起來,作為該整數的正負號;假如第一個非空字元是數

Leetcode 8. String to Integer (atoi) 字串轉換整數 (atoi)

Leetcode 8. String to Integer (atoi) 字串轉換整數 (atoi) 標籤: Leetcode 題目地址:https://leetcode-cn.com/problems/string-to-integer-atoi/ 題目描述 請你

8.、String to Integer (atoi)(字串整)

題目要求,就是實現一個atoi函式的功能,將字串轉換成整數。其中,這個題目難度不大,就是有些邊界條件要考慮。 1、資料型別,這個題也要考慮變數的資料型別,因為輸出整數的範圍是[−2^31, 2^31 − 1]。並且,當轉換結果超出了該範圍,即當大於( 2^

8. String to Integer (atoi)(將輸入的字串轉化為整數)

官網 Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. If you want a challenge,

swift 字串整數atoi- LeetCode

實現 atoi,將字串轉為整數。 在找到第一個非空字元之前,需要移除掉字串中的空格字元。如果第一個非空字元是正號或負號,選取該符號,並將其與後面儘可能多的連續的數字組合起來,這部分字元即為整數的值。如果第一個非空字元是數字,則直接將其與之後連續的數字字元組合起來,形成整數。 字串可

4.2.3 LeetCode字串類題目選做(3) —— String to Integer (atoi) & Integer to English Words

這一節是關於字串和數字的解析的兩個題目,往往要求我們不要用內建的型別轉換函式。 8. String to Integer (atoi) Implement atoi which converts a string to an integer. 具體

007——字串整數atoi

// // Created by HINTS on 2018/11/29. // #include <iostream> #include <string> using namespace std; int myAtoi(string str){ int i =

LEETCODE 8 String to Integer (atoi) JAVA題解

https://leetcode.com/problems/string-to-integer-atoi/ 原題如上。 題意解析: 要把一個字串轉換成一個整數。 字串的輸入可能有如下幾種情況: 1

每日LeetCode之 字串整數atoi

解決方案: public int myAtoi(String str) { if(str.isEmpty()) return 0; int flag =1,i=0;