当前位置: 首页 > news >正文

力扣刷题(第八十五天)

灵感来源 

- 保持更新,努力学习

- python脚本学习

最长回文串

解题思路

  1. 使用哈希表统计每个字符的出现次数。
  2. 计算所有奇数次数的字符数量。
  3. 最长回文串长度为原字符串长度减去奇数次数的字符数量加 1(若存在奇数)。
    from collections import Counterclass Solution:def longestPalindrome(self, s: str) -> int:# 统计每个字符的出现次数count = Counter(s)odd_count = 0# 计算出现奇数次的字符数量for cnt in count.values():if cnt % 2 != 0:odd_count += 1# 最长回文串长度 = 原长度 - 奇数次数的字符数量 + 1(若存在奇数)return len(s) - odd_count + (1 if odd_count > 0 else 0)

逐行解释

from collections import Counterclass Solution:def longestPalindrome(self, s: str) -> int:# 使用Counter统计每个字符的出现次数# 例如:s = "abccccdd" → count = {'a': 1, 'b': 1, 'c': 4, 'd': 2}count = Counter(s)# 初始化奇数次数的字符数量odd_count = 0# 遍历每个字符的出现次数for cnt in count.values():# 若字符出现次数为奇数,将其计入odd_countif cnt % 2 != 0:odd_count += 1# 计算最长回文串长度:# 1. 原字符串长度减去所有奇数次数的字符各1次(即odd_count)# 2. 若存在奇数次数的字符,可任选一个放在回文串中间,故加1# 例如:s = "abccccdd" → len(s) = 8, odd_count = 2('a'和'b'各出现1次)# 最长回文串长度 = 8 - 2 + 1 = 7(如"dccaccd")return len(s) - odd_count + (1 if odd_count > 0 else 0)

http://www.dtcms.com/a/276648.html

相关文章:

  • dubbo源码学习3-dubbo反射调用服务源码分析
  • Unity开发中常用的洗牌算法
  • 数据结构——散列表
  • 数据结构栈的实现(C语言)
  • C语言--原码、反码、补码转换
  • 知识宇宙-思考篇:AI大模型如何重塑软件开发流程?
  • Sentinel+nacos实现push模式规则持久化
  • Java生产带文字、带边框的二维码
  • matplotlib:饼图、环形图、爆炸式饼图
  • 五、深度学习——CNN
  • Raft 代码分析
  • 基于STM32F412+RT-Thread的智能汽车CAN通信仪表盘
  • 深度学习-卷积化
  • Kerberos5 安装
  • 2025XYD Summer Camp 7.11 模考
  • scrapy项目开发流程
  • jQuery 头像裁剪实现
  • 若依前后端分离Vue3版本接入阿里云OSS
  • GoC之汉诺塔绘制
  • JavaSE重点知识
  • 【文献阅读】DEPTH PRO: SHARP MONOCULAR METRIC DEPTH IN LESS THAN A SECOND
  • 【王树森推荐系统】行为序列02:DIN模型(注意力机制)
  • 第10讲——一元函数积分学的几何应用
  • 第八讲~~数据库技术
  • 【InnoDB内存结构】缓冲池,变更缓冲区,自适应哈希索引,日志缓冲区
  • 【项目】GraphRAG基于知识图谱的检索增强技术-实战入门
  • 代码随想录算法训练营65期第17天
  • 余电快速泄放电路
  • 【InnoDB磁盘结构1】系统表空间,独立表空间,双写缓冲区
  • C语言基础知识--动态内存管理