这题无聊到我都懒得把题目复制过来。。
造轮子,实现atoi函数。
没什么技术含量,就是考虑各种边界情况。
1 public class Solution { 2 public int MyAtoi(string str) { 3 bool isNega = false; 4 bool hasSignal = false; 5 bool isBegin = false; 6 int result = 0; 7 for (int i = 0; i < str.Length; i++) 8 { 9 if (str[i] == ' ' && !isBegin) 10 continue; 11 if (str[i] == '+' || str[i] == '-') 12 { 13 if (hasSignal) return isNega ? 0 - result : result; 14 hasSignal = true; 15 isNega = str[i] == '-'; 16 isBegin = true; 17 continue; 18 } 19 if (str[i] >= '0' && str[i] <= '9') 20 { 21 if (result >= 214748365 || (result == 214748364 && (str[i] - 48) >= 8)) 22 return isNega ? int.MinValue : int.MaxValue; 23 result = (str[i] - 48) + result * 10; 24 isBegin = true; 25 hasSignal = true; 26 } 27 else 28 break; 29 } 30 return isNega ? 0 - result : result; 31 } 32 }