655. Add Strings

Description

中文English
Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.
  • The length of both num1 and num2 is < 5100.
  • Both num1 and num2 contains only digits 0-9.
  • Both num1 and num2 does not contain any leading zero.
  • You must not use any built-in BigInteger library or convert the inputs to integer directly.

Example

Example 1:
Input : num1 = "123", num2 = "45"
Output : 168
class Solution { public: /** * @param num1: a non-negative integers * @param num2: a non-negative integers * @return: return sum of num1 and num2 */ string addStrings(string &num1, string &num2) { // write your code here int size1 = num1.size(); int size2 = num2.size(); if(size1 == 0){ return num2; } if(size2 == 0){ return num1; } string res; int i = size1 - 1; int j = size2 - 1; int carr = 0; while(i >= 0 && j >= 0){ int sum = num1[i] - '0' + num2[j] - '0' + carr; res = to_string(sum % 10) + res; carr = sum / 10; i--; j--; } while(i >= 0){ int sum = num1[i] - '0' + carr; res = to_string(sum % 10) + res; carr = sum / 10; i--; } while(j >= 0){ int sum = num2[j] - '0' + carr; res = to_string(sum % 10) + res; carr = sum / 10; j--; } if(carr > 0){ res = to_string(carr) + res; //不要忘记这里 } return res; } };

Comments

Popular posts from this blog

算法的比较