解題思路: 這題也算簡單,就依照題目要求,分類情況,答案就出來了!複雜度為O(n),其中n為字串長度
C++ code如下:
class Solution { public: int myAtoi(string str) { int len=str.size(); long long y=0; int ok=0; int sign=1; for(int i=0;i<len;i++) { if(str[i]>=58||str[i]<=47) { if(!ok) { if(str[i]=='+') ok=1; else if(str[i]=='-') { ok=1; sign=-1; } else if(str[i]!=' ') return 0; } else { if(sign*y>INT_MAX) return sign*INT_MAX; else if(sign*y<INT_MIN) return sign*INT_MIN; else return sign*y; } } else { ok=1; y=y*10+str[i]-'0'; if(sign*y>INT_MAX) return INT_MAX; else if(sign*y<INT_MIN) return INT_MIN; } } if(sign*y>INT_MAX) return INT_MAX; else if(sign*y<INT_MIN) return INT_MIN; else return sign*y; } };
沒有留言:
張貼留言