leedcode-最长回文串
自己写的:
class Solution: def longestPalindrome(self, s: str) -> int: count = 0 # 用于计算最长回文串的长度 hash = {} # 用于统计每个字符出现的次数的字典 # 统计每个字符出现的次数 for i in s: if not hash.get(i): hash[i] = 1 else: hash[i] += 1 oddli = [] # 存储出现奇数次的字符的列表 evenli = [] # 存储出现偶数次的字符的列表 # 将出现奇数次和偶数次的字符分别存储到对应的列表中 for k, v in hash.items(): if v % 2 == 0: evenli.append(v) else: oddli.append(v) oddlen = len(oddli) # 计算出现奇数次的字符的个数 # 如果没有出现奇数次的字符,则所有字符都可以用于构成回文串,直接返回字符串长度 if oddlen == 0: for even in evenli: count += even return count # 如果只有一个出现奇数次的字符,则这个字符可以放在回文串的中间,其余字符都是偶数次出现,直接返回计算长度 elif oddlen == 1: for even in evenli: count += even count += oddli[0] return count # 如果有多个出现奇数次的字符,则将其中偶数个字符的数量-1加入回文串,最后再加一个出现奇数次的字符作为中心 else: for even in evenli: count += even for odd in oddli: count += odd - 1 return count + 1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)