LeetCode刷题笔记-数据结构-day6

Posted ΘLLΘ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode刷题笔记-数据结构-day6相关的知识,希望对你有一定的参考价值。

文章目录

LeetCode刷题笔记-数据结构-day6

415.字符串相加

1.题目描述

原题链接:415. 字符串相加

2.解题思路

直接套用大数相加模板:

// C = A + B, A >= 0, B >= 0
vector<int> add(vector<int> &A, vector<int> &B)

    if (A.size() < B.size()) return add(B, A);
    vector<int> C;
    int t = 0;
    for (int i = 0; i < A.size(); i ++ )
    
        t += A[i];
        if (i < B.size()) t += B[i];
        C.push_back(t % 10);
        t /= 10;
    
    if (t) C.push_back(t);
    return C;

3.代码

class Solution 
public:
    string addStrings(string a, string b) 
        reverse(a.begin(),a.end());
        reverse(b.begin(),b.end());
        string res;
        int t=0;
        for(int i=0;i<max(a.size(),b.size())||t;i++)
            if(i<a.size()) t+=a[i]-'0';
            if(i<b.size()) t+=b[i]-'0';
            res+='0'+t%10;
            t/=10;
        
        reverse(res.begin(),res.end());
        return res;
    
;

409.最长回文串

1.题目描述

原文链接:409. 最长回文串

2.解题思路

算法:哈希+贪心

我们用哈希表记录每个字符出现的次数:

  1. 如果某个字符总个数为偶数,则肯定能够组成回文串,直接加入最终答案
  2. 如果某个字符总个数为奇数,添加个数-1并计入最终答案,并且标记存在中心字符
  3. 最后结尾判断是否存在奇数,存在的话还需要加上一个中心字符

3.代码

class Solution 
public:
    int longestPalindrome(string s) 
        map<char,int> hash;
        for(auto x:s) hash[x]++;
        int res=0;
    
        for(auto [a,b]:hash)
            res+=b/2*2;
        if(res<s.size()) res++;
        return res;
    
;

以上是关于LeetCode刷题笔记-数据结构-day6的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode刷题笔记-动态规划-day6

LeetCode刷题笔记-动态规划-day6

LeetCode刷题笔记-动态规划-day6

LeetCode刷题笔记-数据结构-day19

LeetCode刷题笔记-数据结构-day20

LeetCode刷题笔记-数据结构-day16