国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LeetCode·每日一題·415. 字符串相加·模擬

這篇具有很好參考價(jià)值的文章主要介紹了LeetCode·每日一題·415. 字符串相加·模擬。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

作者:小迅
鏈接:https://leetcode.cn/problems/add-strings/solutions/2347085/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-fges/
來源:力扣(LeetCode)
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

題目

LeetCode·每日一題·415. 字符串相加·模擬,LeetCode刷題筆記,leetcode,算法,職場和發(fā)展

?文章來源地址http://www.zghlxwxcb.cn/news/detail-598120.html

思路

題意 -> 給定二個(gè)字符串,計(jì)算它們的和并同樣以字符串形式返回。

直接從尾部向頭部進(jìn)行枚舉,模擬實(shí)際計(jì)算過程,每取一個(gè)數(shù)就將字符轉(zhuǎn)換為數(shù)字,然后計(jì)算之后再將其轉(zhuǎn)換為字符存儲,最后判斷是否存在進(jìn)位,如果存在進(jìn)位就將進(jìn)位也存儲。

關(guān)于進(jìn)位的一個(gè)技巧,因?yàn)楹瓦\(yùn)算,進(jìn)位只可能有 1,因此在開辟內(nèi)存的時(shí)候就將進(jìn)位的位置開辟出來,并賦值 為 1,最后返回時(shí),如果存在進(jìn)位就返回字符串首地址,反之返回字符串首地址 + 1 ---- 去取進(jìn)位影響。

代碼注釋超級詳細(xì)

ps:此題我在去年的時(shí)候也做過一次,再回看當(dāng)時(shí)代碼時(shí),感慨萬千,通過看代碼就知道,當(dāng)時(shí)代碼水平非常有限,代碼寫的也非常冗余,經(jīng)過一年的學(xué)習(xí),進(jìn)步還是非常明顯的。各位努力吧?。?!

LeetCode·每日一題·415. 字符串相加·模擬,LeetCode刷題筆記,leetcode,算法,職場和發(fā)展

?

代碼

char * addStrings(char * num1, char * num2){
    int len1 = strlen(num1);
    int len2 = strlen(num2);
    int len = (len1 > len2 ? len1 : len2) + 2;
    char *ans = malloc(sizeof(char) * len);
    memset(ans, 0, len);//初始化
    ans[0] = '1';//進(jìn)位賦值
    int c = 0;//記錄進(jìn)位
    for (int i = len - 2; i > 0; i--) {
        int sum = 0;//記錄和
        if (len1 > 0) {//取數(shù)
            sum += (num1[len1 - 1] - '0');
            --len1;
        }
        if (len2 > 0) {//取數(shù)
            sum += (num2[len2 - 1] - '0');
            --len2;
        }
        sum += c;//加上一位的進(jìn)位
        c = sum / 10;//保存進(jìn)位
        sum %= 10;//保存當(dāng)前位
        ans[i] = sum + '0';//字符存儲
    }
    return c ? ans : ans+1;//判斷進(jìn)位返回對應(yīng)地址
}

作者:小迅
鏈接:https://leetcode.cn/problems/add-strings/solutions/2347085/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-fges/
來源:力扣(LeetCode)
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
char * addStrings(char * num1, char * num2){
    int num1_len = strlen(num1);
    int num2_len = strlen(num2);
    int len_1 = num1_len-1;
    int len_2 = num2_len-1;
    int max_len = num1_len>num2_len ? num1_len : num2_len;
    char * num = malloc(sizeof(char) * (max_len+2));
    int i =0,sum = 0,max = max_len+2;
    while(len_1>=0&&len_2>=0)
    {
        sum = (num1[len_1--]-'0')+(num2[len_2--]-'0')+i;
        i = sum/10;
        sum = sum%10;
        num[max_len--] = sum+'0';
    }
    while(len_1>=0)
    {
        sum = (num1[len_1--]-'0')+i;
        i = sum/10;
        sum = sum%10;
        num[max_len--] = sum+'0';
    }
    while(len_2>=0)
    {
        sum = (num2[len_2--]-'0')+i;
        i = sum/10;
        sum = sum%10;
        num[max_len--] = sum+'0';
    }
    if(i>0)
    {
        num[0] = i+'0';
        num[max-1] ='\0';
        return num;
    }
    num[max-1] ='\0';
    return ++num;
    
}


作者:小迅
鏈接:https://leetcode.cn/problems/add-strings/solutions/2347085/mo-ni-zhu-shi-chao-ji-xiang-xi-by-xun-ge-fges/
來源:力扣(LeetCode)
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

到了這里,關(guān)于LeetCode·每日一題·415. 字符串相加·模擬的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ( 字符串) 205. 同構(gòu)字符串 ——【Leetcode每日一題】

    ( 字符串) 205. 同構(gòu)字符串 ——【Leetcode每日一題】

    難度:簡單 給定兩個(gè)字符串 s 和 t ,判斷它們是否是同構(gòu)的。 如果 s 中的字符可以按某種映射關(guān)系替換得到 t ,那么這兩個(gè)字符串是同構(gòu)的。 每個(gè)出現(xiàn)的字符都應(yīng)當(dāng)映射到另一個(gè)字符,同時(shí)不改變字符的順序。不同字符不能映射到同一個(gè)字符上,相同字符只能映射到同一個(gè)

    2024年02月02日
    瀏覽(65)
  • (字符串 ) 459. 重復(fù)的子字符串——【Leetcode每日一題】

    (字符串 ) 459. 重復(fù)的子字符串——【Leetcode每日一題】

    難度:簡單 給定一個(gè)非空的字符串 s ,檢查是否可以通過由它的一個(gè)子串重復(fù)多次構(gòu)成。 示例 1: 輸入: s = “abab” 輸出: true 解釋: 可由子串 “ab” 重復(fù)兩次構(gòu)成。 示例 2: 輸入: s = “aba” 輸出: false 示例 3: 輸入: s = “abcabcabcabc” 輸出: true 解釋: 可由子串 “abc” 重復(fù)四次構(gòu)

    2024年02月07日
    瀏覽(22)
  • (字符串) 844. 比較含退格的字符串——【Leetcode每日一題】

    (字符串) 844. 比較含退格的字符串——【Leetcode每日一題】

    難度:簡單 給定 s 和 t 兩個(gè)字符串,當(dāng)它們分別被輸入到空白的文本編輯器后,如果兩者相等,返回 true 。 # 代表退格字符。 注意 :如果對空文本輸入退格字符,文本繼續(xù)為空。 示例 1: 輸入:s = “ab#c”, t = “ad#c” 輸出:true 解釋:s 和 t 都會(huì)變成 “ac”。 示例 2: 輸入

    2024年02月11日
    瀏覽(19)
  • (字符串 ) 劍指 Offer 58 - II. 左旋轉(zhuǎn)字符串 ——【Leetcode每日一題】

    (字符串 ) 劍指 Offer 58 - II. 左旋轉(zhuǎn)字符串 ——【Leetcode每日一題】

    難度:簡單 字符串的左旋轉(zhuǎn)操作是把字符串前面的若干個(gè)字符轉(zhuǎn)移到字符串的尾部。請定義一個(gè)函數(shù)實(shí)現(xiàn)字符串左旋轉(zhuǎn)操作的功能。比如,輸入字符串\\\"abcdefg\\\"和數(shù)字2,該函數(shù)將返回左旋轉(zhuǎn)兩位得到的結(jié)果\\\"cdefgab\\\"。 示例 1: 輸入: s = “abcdefg”, k = 2 輸出: “cdefgab” 示例 2:

    2024年02月08日
    瀏覽(24)
  • ( 字符串) 647. 回文子串 ——【Leetcode每日一題】

    ( 字符串) 647. 回文子串 ——【Leetcode每日一題】

    難度:中等 給你一個(gè)字符串 s ,請你統(tǒng)計(jì)并返回這個(gè)字符串中 回文子串 的數(shù)目。 回文字符串 是正著讀和倒過來讀一樣的字符串。 子字符串 是字符串中的由連續(xù)字符組成的一個(gè)序列。 具有不同開始位置或結(jié)束位置的子串,即使是由相同的字符組成,也會(huì)被視作不同的子串

    2024年02月01日
    瀏覽(45)
  • (字符串) 925. 長按鍵入 ——【Leetcode每日一題】

    (字符串) 925. 長按鍵入 ——【Leetcode每日一題】

    難度:簡單 你的朋友正在使用鍵盤輸入他的名字 name 。偶爾,在鍵入字符 c 時(shí),按鍵可能會(huì)被長按,而字符可能被輸入 1 次或多次。 你將會(huì)檢查鍵盤輸入的字符 typed 。如果它對應(yīng)的可能是你的朋友的名字(其中一些字符可能被長按),那么就返回 True 。 示例 1: 輸入:na

    2024年02月09日
    瀏覽(21)
  • (貪心) 1221. 分割平衡字符串 ——【Leetcode每日一題】

    (貪心) 1221. 分割平衡字符串 ——【Leetcode每日一題】

    難度:簡單 平衡字符串 中, \\\'L\\\' 和 \\\'R\\\' 字符的數(shù)量是相同的。 給你一個(gè)平衡字符串 s ,請你將它分割成盡可能多的子字符串,并滿足: 每個(gè)子字符串都是平衡字符串。 返回可以通過分割得到的平衡字符串的 最大數(shù)量 。 示例 1: 輸入:s = “RLRRLLRLRL” 輸出:4 解釋:s 可以分

    2024年02月11日
    瀏覽(19)
  • 【LeetCode每日一題】2182. 構(gòu)造限制重復(fù)的字符串

    【LeetCode每日一題】2182. 構(gòu)造限制重復(fù)的字符串

    2024-1-13 2182. 構(gòu)造限制重復(fù)的字符串 思路: 按照字符出現(xiàn)次數(shù)從高到低的順序進(jìn)行重復(fù),通過維護(hù)一個(gè)指針 j 來尋找下一個(gè)非零出現(xiàn)次數(shù)的字母。同時(shí),利用 StringBuilder 對象可以高效地構(gòu)建字符串,避免頻繁的字符串拼接操作 首先,創(chuàng)建一個(gè)長度為26的數(shù)組 cnt ,用于統(tǒng)計(jì)字

    2024年01月18日
    瀏覽(25)
  • 【LeetCode每日一題】2788. 按分隔符拆分字符串

    【LeetCode每日一題】2788. 按分隔符拆分字符串

    2024-1-20 2788. 按分隔符拆分字符串 思路: 對于每個(gè)單詞,使用一個(gè)可變字符串 StringBuilder 來構(gòu)建拆分后的單詞。初始時(shí),可變字符串為空。 遍歷每個(gè)單詞的每個(gè)字符,如果遇到指定的分隔符,就將可變字符串中的字符構(gòu)成一個(gè)新的單詞,并將其添加到結(jié)果列表中。然后清空可

    2024年01月21日
    瀏覽(21)
  • (字符串 ) 劍指 Offer 05. 替換空格 ——【Leetcode每日一題】

    (字符串 ) 劍指 Offer 05. 替換空格 ——【Leetcode每日一題】

    難度:簡單 請實(shí)現(xiàn)一個(gè)函數(shù),把字符串 s 中的每個(gè) 空格 替換成 “ %20 ”。 示例 1: 輸入:s = “We are happy.” 輸出:“We%20are%20happy.” 限制 : 0 = s 的長度 = 10000 ??思路:雙指針法 如果想把這道題目做到 極致 ,就不要只用額外的輔助空間了! 首先擴(kuò)充數(shù)組到每個(gè)空格替換

    2024年02月08日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包