實現乙個atoi
函式,使其能將字串轉換成整數。
轉換規則:
首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。接下來的轉化規則如下:
假如該字串中的第乙個非空格字元不是乙個有效整數字元、字串為空或字串僅包含空白字元時,則你的函式不需要進行轉換,即無法進行有效轉換。
在任何情況下,若函式不能進行有效的轉換時,請返回 0 。
注意:
class solution
int num = 0;
int sign = 1;
for (int i = 0; i < s.length(); i++)
if ((0 == i) && (s[i] == '-'))
if (s[i] < '0' || s[i] > '9')
if ((num > int_max / 10) || (num == int_max / 10 && s[i] - 48 > 7))
if ((num < int_min / 10) || (num == int_min / 10 && s[i] - 48 > 8))
num = num * 10 + (s[i] - 48) * sign;
}return num;}};
**略顯臃腫。
轉成**為:
空白字元
'+'或者'-'
數字其他
start
start
sign
in_number
endsign
endend
in_number
endin_number
endend
in_number
endend
endend
endend
class automaton },
},},}};
int get_col(char c) else if (c == '+' || c == '-') else if (isdigit(c)) else
}public:
int sign = 1;
long long ans = 0;
void get(char c) else if (state == "sign" && c == '-')
}};class solution
return automaton.ans * automaton.sign;}};
時間複雜度o(n), 空間複雜度o(1) leetcode字串轉換整數
請你來實現乙個atoi函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字元組...
LeetCode 字串轉換整數
題目描述 請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連...
leetcode 字串轉換整數 atoi
請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字...