<p>Given two non-negative integers, <code>num1</code> and <code>num2</code> represented as string, return <em>the sum of</em> <code>num1</code> <em>and</em> <code>num2</code> <em>as a string</em>.</p>

<p>You must solve the problem without using any built-in library for handling large integers (such as <code>BigInteger</code>). You must also not convert the inputs to integers directly.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>

<pre>
<strong>Input:</strong> num1 = &quot;11&quot;, num2 = &quot;123&quot;
<strong>Output:</strong> &quot;134&quot;
</pre>

<p><strong class="example">Example 2:</strong></p>

<pre>
<strong>Input:</strong> num1 = &quot;456&quot;, num2 = &quot;77&quot;
<strong>Output:</strong> &quot;533&quot;
</pre>

<p><strong class="example">Example 3:</strong></p>

<pre>
<strong>Input:</strong> num1 = &quot;0&quot;, num2 = &quot;0&quot;
<strong>Output:</strong> &quot;0&quot;
</pre>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>1 &lt;= num1.length, num2.length &lt;= 10<sup>4</sup></code></li>
	<li><code>num1</code> and <code>num2</code> consist of only digits.</li>
	<li><code>num1</code> and <code>num2</code> don&#39;t have any leading zeros except for the zero itself.</li>
</ul>

class Solution {
public:
    void solve(string &num1, string &num2, int i, int j, int c, string &op){
        if(i<0 && j<0){
            if(c!=0){
                op+=c+'0';
            }
            return;
        }
        
        int no1 = (i>=0)? (num1[i]-'0'):0;
        int no2 = (j>=0)? (num2[j]-'0'):0;

        // if(no1 ==0 && no2==0 && c==0){
        //     return;
        // }
        int finalno = no1+no2+c;
        int  rem = finalno %10;
        // int rem = (finalno%10);
        solve(num1, num2, i-1, j-1, finalno/10, op);

        // solve(num1,num2, i-1, j-1, finalno/10, op+to_string(rem));
        op += to_string(finalno%10);
        // c = finalno/10;
        


    }
    string addStrings(string num1, string num2) {
        // if(num1=="0"&& num2=="0"){
        //     return "0";
        // }
        int i = num1.length()-1;
        int j = num2.length()-1;
        int c = 0;
        string op = "";
        solve(num1, num2, i, j,c, op);
        return op;

        
    }
};
13481