# Leetcode Add-Strings 2022-09-05 17:07 > ##### Data structures: > > #DS #string > > ##### Difficulty: > > #coding_problem #difficulty-easy > > ##### Additional tags: > > #leetcode > > ##### Revisions: > > N/A ##### Links: - [Link to problem](https://leetcode.com/problems/add-strings/) --- ### Problem Given two non-negative integers, `num1` and `num2` represented as string, return _the sum of_ `num1` _and_ `num2` _as a string_. You must solve the problem without using any built-in library for handling large integers (such as `BigInteger`). You must also not convert the inputs to integers directly. #### Examples **Example 1:** **Input:** num1 = "11", num2 = "123" **Output:** "134" **Example 2:** **Input:** num1 = "456", num2 = "77" **Output:** "533" **Example 3:** **Input:** num1 = "0", num2 = "0" **Output:** "0" #### Constraints - `1 <= num1.length, num2.length <= 104` - `num1` and `num2` consist of only digits. - `num1` and `num2` don't have any leading zeros except for the zero itself. ### Thoughts > [!summary] > This is a #string operation problem Straightforward, just think how to calculate IRL. #TODO: try out faster solutions in discussion ### Solution ```cpp class Solution { public: string addStrings(string num1, string num2) { string ans = ""; int sum = 0; while (!num1.empty() || !num2.empty() || sum != 0) { if (!num1.empty()) { sum += num1.back() - '0'; num1.pop_back(); } if (!num2.empty()) { sum += num2.back() - '0'; num2.pop_back(); } ans.insert(0, 1, (sum % 10) + '0'); sum = sum / 10; } return ans; } }; ```