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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章