黔南布依族苗族自治州网站建设_网站建设公司_导航菜单_seo优化
2025/12/30 20:17:48 网站建设 项目流程

lc

lc2384

hash+贪心

trick: 对于回文串,可以先构造做左半部分,然后添加对称的右半部分来降低编码难度。

先统计数字出现次数

把非零大数字的偶数次半数拼左半部分,有非零左半才加零的偶数次半数

再塞一个最大奇数次数字当中间

最后镜像左半拼出最大回文数

class Solution {
public:
string largestPalindromic(string s) {
int cnt[10];memset(cnt,0,sizeof cnt);
for(char c:s)cnt[c-'0']++;
int n=s.size();

if(cnt[0]==n)return "0";
string left;

for(int i=9;i>0;--i){
for(int j=0;j<cnt[i]/2;j++)
left+='0'+i;
}
// 只有左边添加了大于'0'的数字才能在中间添加偶数个'0'
if(left.size()){
for(int j=0;j<cnt[0]/2;++j)
left+='0';
}

int j=left.size()-1;
// 奇数的最大一个数字
for(int i=9;i>=0;i--)
if(cnt[i]&1){
left+='0'+i;
break;
}
// 将右半部分补齐
for(;j>=0;j--){
left+=left[j];
}
return left;
}
};

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询