Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int myAtoi(string str) {
- int ans=0;
- int p=0;
- if(str.length()==0)
- return 0;
- char sign=' ';
- for(int i=0;i<str.length();i++)
- {
- bool bf=false;
- while(i<str.length()&&str[i]!='+'&&str[i]!='-'&&!isdigit(str[i])) i++;
- if(i+1<str.length()&&str[i]=='+'&&isdigit(str[i+1]))
- {
- sign='+';
- i++;
- }
- if(i+1<str.length()&&str[i]=='-'&&isdigit(str[i+1]))
- {
- sign='-';
- i++;
- }
- while(i<str.length()&&isdigit(str[i]))
- {
- if(ans==INT_MAX/10)
- return INT_MAX;
- if(ans>INT_MAX/10)
- return INT_MIN;
- if(ans<INT_MIN/10)
- return INT_MAX;
- ans=(ans*10)+int(str[i]-'0');
- cout<<ans<<endl;
- cout<<str[i]-'0'<<endl;
- i++;
- if(!isdigit(str[i]))
- {
- bf=true;
- break;
- }
- p++;
- }
- if(bf) break;
- }
- if(!isdigit(str[0])&&str[0]!='-'&&str[0]!=' '&&str[0]!='+')
- return 0;
- if(str.length()>1&&(str[0]=='+'||str[0]=='-')&&!isdigit(str[1]))
- return 0;
- if(sign=='-')
- return -ans;
- return ans;
- }
- };
Add Comment
Please, Sign In to add comment