A straightforward method to tackle this issue might involve transforming the strings into BigIntegers (which are supported in some programming languages, such as Java) and performing the addition. However, let's approach the problem without resorting to such conversions. A more effective method would be to apply the traditional technique of addition, which involves starting from the least significant digit and progressing toward the most significant one. Below is a Python code example that demonstrates how to implement this: def addStrings ( num1 , num2 ) : i , j , carry , res = len ( num1 ) - 1 , len ( num2 ) - 1 , 0 , [ ] while i >= 0 or j >= 0 or carry : n1 = int ( num1 [ i ] ) if i >= 0 else 0 n2 = int ( num2 [ j ] ) if j >= 0 else 0 carry , curr = divmod ( n1 + n2 + carry , 10 ) res . append ( str ( curr ) ) i , j = i - 1 , j - 1 return '' . join ( res [ : : - 1 ] ) We start by positioning pointers i and j at the ends of num1 and num2 , respectively, decrementing them by one at each step (moving left). We also keep track of the carry from the previous addition. At each iteration, we compute the sum of the current digits and the carry, storing the last digit of this sum in res . The remaining portion becomes the carry for the subsequent step. This process continues until all digits of the numbers and the carry have been processed.