String to Integer (atoi)(C++字符串转换整数 (atoi))

男娘i 2022-10-18 00:53 256阅读 0赞

(1)模拟法

  1. class Solution {
  2. public:
  3. int myAtoi(string s) {
  4. int i=0,tag=1;
  5. long long int sum=0;
  6. while(i<s.length()) {
  7. if(s[i]==' ') i++;
  8. else if(s[i]=='-') {
  9. tag=-1;
  10. i++;
  11. while(i<s.length() && isdigit(s[i])) {
  12. if(sum>INT_MAX || sum<INT_MIN) break;
  13. sum=sum*10+(s[i]-'0');
  14. i++;
  15. }
  16. break;
  17. } else if(s[i]=='+') {
  18. i++;
  19. while(i<s.length() && isdigit(s[i])) {
  20. sum=sum*10+(s[i]-'0');
  21. i++;
  22. }
  23. break;
  24. } else if(!isdigit(s[i])) {
  25. break;
  26. } else if(isdigit(s[i])) {
  27. while(i<s.length() && isdigit(s[i])) {
  28. if(sum>INT_MAX || sum<INT_MIN) break;
  29. sum=sum*10+(s[i]-'0');
  30. i++;
  31. }
  32. break;
  33. }
  34. }
  35. sum*=tag;
  36. if(sum<=INT_MAX && sum>=INT_MIN) return sum;
  37. else if(sum>INT_MAX) return INT_MAX;
  38. else return INT_MIN;
  39. }
  40. };

发表评论

表情:
评论列表 (有 0 条评论,256人围观)

还没有评论,来说两句吧...

相关阅读