415.字符串相加

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

方法:逐位相加,逢十进一,与67二进制求和是一类题

class Solution {
public:
    string addStrings(string num1, string num2) {
        reverse(num1.begin(), num1.end());
        reverse(num2.begin(), num2.end());
        int len1 = num1.length();
        int len2 = num2.length();
        if(len1 < len2)                  //较短字符串用0补齐
           num1.append(len2-len1, '0');
        else
           num2.append(len1-len2, '0');
        
        int flag = 0;
        string res;
        for(int i = 0; i < num1.length(); i++) {
            flag += num1[i] - '0';       //减去字符0的ASCII码得到对应的数字
            flag += num2[i] - '0';
            res += (flag%10 + '0');
            flag /= 10;
        }

        if(flag)
          res += '1';
        reverse(res.begin(), res.end());
        return res;
    }
};

上一篇:求最大公约数伪代码


下一篇:0150. Evaluate Reverse Polish Notation (M)