算法日常・每日刷题--<贪心>13

409. 最长回文串 - 力扣(LeetCode)409. 最长回文串 - 给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的 回文串 的长度。在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串。 示例 1:输入:s = "abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。示例 2:输入:s = "a"输出:1解释:可以构造的最长回文串是"a",它的长度是 1。 提示: * 1 <= s.length <= 2000 * s 只由小写 和/或 大写英文字母组成https://leetcode.cn/problems/longest-palindrome/

题目描述

给定一个包含大写字母和小写字母的字符串 s,返回通过这些字母构造成的最长回文串的长度。

注意:区分大小写,'A''a' 视为两个不同字符;不需要用完所有字符。

核心思想:回文串中,字符成对分布;最多只能有一个字符放在中间作为对称轴

cpp 复制代码
class Solution {
public:
    int longestPalindrome(string s) {
         int tmp[128]={0};
         int ret=0;
         int n=0;
        for(auto e:s)
        {
            tmp[e-'A']++;
        }
        for(auto e:tmp)
        {
            if(e%2!=0)
            n++;
            ret+=e/2*2;
        }
        if(n>0)
        return ret+1;
        return ret;
    }
};
相关推荐
带多刺的玫瑰1 小时前
Leecode#35刷题之搜索插入位置
java·python·算法
我不会起名字3222 小时前
万字总结Golang入门项目
数据结构·经验分享·算法·golang·项目实战·复盘
6Hzlia2 小时前
【Classic 150 刷题计划】 LeetCode 14. 最长公共前缀 | C++ 纵向扫描法与防越界细节
c++·算法·leetcode
Niuguangshuo10 小时前
论文解读:CTC,端到端序列识别的开山之作
算法·语音识别
讳疾忌医丶10 小时前
深度拆解 RocksDB 内核:基于 C++17 的 FIFO 调度状态机与温度阶梯自愈设计
java·c++·算法·架构
高亦真11 小时前
今天是学习嵌入式的第37天
linux·学习·算法
罗西的思考12 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 --- (2)--- 训练
人工智能·算法·机器学习
深圳市方中禾科技14 小时前
FZH1625 LCD 驱动芯片深度评测与实战指南
算法·led
我不会起名字32214 小时前
一天一道算法题(34):回溯法的经典例题(子集)
java·数据结构·python·算法·golang·深度优先·力扣