415. Add Strings(还是字符串加减)

Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.

Note:

  1. The length of both num1 and num2 is < 5100.
  2. Both num1 and num2 contains only digits 0-9.
  3. Both num1 and num2 does not contain any leading zero.
  4. You must not use any built-in BigInteger library or convert the inputs to integer directly.

 法1:这题和67.add ninary简直一模一样    想法还是通过从最后一位开始,每一位相加,进位标志为sum/10

class Solution {
public:
    string addStrings(string num1, string num2) {
        int  na =num1.size()-1;
        int  nb=num2.size()-1;
        string res="";
        int crazy=0;
    
        while (na>=0||nb>=0)
        {
            int p=na>=0? num1[na--]-'0':0;//类似前面不够位的补0
            int q=nb>=0? num2[nb--]-'0':0;
            
            int sum=p+q+crazy;
            res=to_string (sum%10)+res;
            crazy=sum/10;
        }
            return crazy!=0?to_string (crazy)+res:res ;
    }
};

 

posted @ 2018-06-01 00:38  小飞侠war  阅读(96)  评论(0编辑  收藏  举报