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并计入最终答案,并且标记存在中心字符
- 最后结尾判断是否存在奇数,存在的话还需要加上一个中心字符
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的主要内容,如果未能解决你的问题,请参考以下文章