LeetCode 415. Add Strings

415. Add Strings

Description

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 

Solution

  • 题意即将两个字符串形式的数字相加,其实就是高精度加法。
  • 可以模拟竖式来进行字符串相加,实现方式多种多样,下面的代码虽然AC了,但是临时写成,多处凌乱,建议去搜索专门的高精度算法来研究学习。
void r(char *s)
{
    int len = strlen(s);
    char cp[len + 1];
    for (int i = 0;i < len;i++) 
        cp[i] = s[len - i - 1];
    memcpy(s,cp,len);
}
char rnt[6000];
char* addStrings(char* num1, char* num2) {
    int len1 = strlen(num1),len2 = strlen(num2);
    int len = len1>len2?len1:len2;
    memset(rnt,0,sizeof(rnt));
    r(num1);r(num2);
    for (int i = 0;i < len;i++)
        rnt[i] = '0';
    for (int i = 0;i < len;i++) {
        int a,b,c;
        if (i < len1)
            a = num1[i] - '0';
        else
            a = 0;
        if (i < len2)
            b = num2[i] - '0';
        else
            b = 0;
        if (a + b > 9 || (a + b == 9 && rnt[i] == '1')) rnt[i + 1] = '1';
        if (a + b == 9 && rnt[i] == '1')
            rnt[i] = '0';
        else
            rnt[i] += (a + b) % 10;
    }
    r(rnt);
    return rnt;
}
发布了77 篇原创文章 · 获赞 5 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章