diff --git a/007. String to Integer (atoi)/main.cpp b/007. String to Integer (atoi)/main.cpp new file mode 100644 index 0000000..5bf89a3 --- /dev/null +++ b/007. String to Integer (atoi)/main.cpp @@ -0,0 +1,13 @@ +#include +#include "solution.h" + + +int main() { + string str; + cin>>str; + + Solution s; + std::cout << s.myAtoi(str) << std::endl; + + return 0; +} diff --git a/007. String to Integer (atoi)/solution.h b/007. String to Integer (atoi)/solution.h new file mode 100644 index 0000000..8fd268b --- /dev/null +++ b/007. String to Integer (atoi)/solution.h @@ -0,0 +1,35 @@ +class Solution { +public: + int myAtoi(string A) { + long long int temp=0, ans=0; + + int i=0; + bool neg=0; + + while(A[i]==' ') i++; + if(i==A.size()) return 0; + + if(A[i]=='-'){ + i++; + neg=1; + } else if(A[i]=='+') i++; + + for(;i'9') break; + + temp = A[i]-'0'; + + ans = ans*10 + temp; + + if(neg && ans>INT_MAX) return INT_MIN; + + if(!neg && ans>=INT_MAX) break; + } + + if(neg){ + return -ans; + } + if(ans>=INT_MAX) return INT_MAX; + return ans; + } +}; \ No newline at end of file