diff --git a/2024/LeetCode/7. ReverseInteger.cpp b/2024/LeetCode/7. ReverseInteger.cpp index 3493547..387a2ff 100644 --- a/2024/LeetCode/7. ReverseInteger.cpp +++ b/2024/LeetCode/7. ReverseInteger.cpp @@ -14,4 +14,5 @@ class Solution { return ans; } -}; \ No newline at end of file +}; + diff --git a/2024/LeetCode/8. String to Integer (atoi).cpp b/2024/LeetCode/8. String to Integer (atoi).cpp new file mode 100644 index 0000000..a8f2aeb --- /dev/null +++ b/2024/LeetCode/8. String to Integer (atoi).cpp @@ -0,0 +1,36 @@ +class Solution { +public: + int myAtoi(string s) { + int i = 0; + long ans = 0; + int sign = 1; + + while(i < s.length() && s[i] == ' ' ) + i++; + + if (s[i] == '-') + { + i++; + sign = -1; + } + else if (s[i] == '+') + i++; + + while(i < s.length()) + { + if (s[i] >= '0' && s[i] <= '9') + { + ans = ans * 10 + (s[i] - '0'); + if (ans > INT_MAX && sign == -1) + return INT_MIN; + else if (ans > INT_MAX && sign == 1) + return INT_MAX; + i++; + } + else + return ans * sign; + } + + return (ans * sign); + } +};