Guest User

Untitled

a guest
Jul 19th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. class Solution {
  2. public:
  3. int myAtoi(string str) {
  4. int ans=0;
  5. int p=0;
  6. if(str.length()==0)
  7. return 0;
  8.  
  9. char sign=' ';
  10. for(int i=0;i<str.length();i++)
  11. {
  12. bool bf=false;
  13. while(i<str.length()&&str[i]!='+'&&str[i]!='-'&&!isdigit(str[i])) i++;
  14. if(i+1<str.length()&&str[i]=='+'&&isdigit(str[i+1]))
  15. {
  16. sign='+';
  17. i++;
  18. }
  19. if(i+1<str.length()&&str[i]=='-'&&isdigit(str[i+1]))
  20. {
  21. sign='-';
  22. i++;
  23. }
  24. while(i<str.length()&&isdigit(str[i]))
  25. {
  26. if(ans==INT_MAX/10)
  27. return INT_MAX;
  28. if(ans>INT_MAX/10)
  29. return INT_MIN;
  30. if(ans<INT_MIN/10)
  31. return INT_MAX;
  32. ans=(ans*10)+int(str[i]-'0');
  33. cout<<ans<<endl;
  34. cout<<str[i]-'0'<<endl;
  35. i++;
  36. if(!isdigit(str[i]))
  37. {
  38. bf=true;
  39. break;
  40. }
  41. p++;
  42.  
  43. }
  44.  
  45. if(bf) break;
  46. }
  47. if(!isdigit(str[0])&&str[0]!='-'&&str[0]!=' '&&str[0]!='+')
  48. return 0;
  49. if(str.length()>1&&(str[0]=='+'||str[0]=='-')&&!isdigit(str[1]))
  50. return 0;
  51. if(sign=='-')
  52. return -ans;
  53. return ans;
  54.  
  55. }
  56. };
Add Comment
Please, Sign In to add comment