重点:多种输入情况的考虑
public class Solution {
public int MyAtoi(string str) {
int len, negative = 1;
double longRes=0;
string s = str.Trim(), tmpStr = "";
len = s.Length;
if (String.IsNullOrEmpty(s) || (s[0] != '+' && s[0] != '-' && (s[0] < '0' || s[0] > '9')) || s == "+" || s == "-")
return 0;
if (len >= 2 && ( (s[0] == '+' || s[0] == '-') && (s[1] < '0' || s[1] > '9')))
return 0;
if (s[0] == '-')
negative = -1;
if (s[0] != '+'&& s[0] != '-')
tmpStr += s[0].ToString();
for (int i = 1; i < len; i++)
{
if (s[i] >= '0' && s[i] <= '9')
tmpStr += s[i].ToString();
else
break;
}
int j = 0;
while(j<tmpStr.Length)
{
longRes = longRes * 10 + tmpStr[j++]-'0';
}
if(negative == -1 && longRes*-1< -2147483648)
return -2147483648;
else if (negative == 1 && longRes >= 2147483647)
return 2147483647;
return Convert.ToInt32(longRes*negative);
}
}