From 4be27871a9428bea0001498cf91bc235331dd991 Mon Sep 17 00:00:00 2001 From: Ayush Sharma Date: Sat, 18 Oct 2025 13:31:12 +0530 Subject: [PATCH] Add solution for 8. String to Integer (atoi) in C++ --- 8. String to Integer (atoi).cpp | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 8. String to Integer (atoi).cpp diff --git a/8. String to Integer (atoi).cpp b/8. String to Integer (atoi).cpp new file mode 100644 index 0000000..6616f7b --- /dev/null +++ b/8. String to Integer (atoi).cpp @@ -0,0 +1,38 @@ +class Solution { +public: + int myAtoi(string s) { + int l = s.length(); + int sign = 1, i = 0; + long long ans = 0; + + // trimming leading spaces + while (i < l && s[i] == ' ') i++; + + + // sign check condition + if (i == l) + return 0; + if (s[i] == '-') { + sign = -1; + i++; + } else if (s[i] == '+') + i++; + + // converting characters to integer + while (i < l && isdigit(s[i])) { + int digit = s[i] - '0'; + ans = ans * 10 + digit; + + // overflow condition handling + if (sign == 1 && ans > INT_MAX) { + return INT_MAX; + } + if (sign == -1 && (-1 * ans) < INT_MIN) { + return INT_MIN; + } + i++; + } + + return (int)(ans * sign); + } +}; \ No newline at end of file