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

Leetcode 409. Longest Palindrome

Problem

Given a string s which consists of lowercase or uppercase letters, return the length of the longest
palindrome that can be built with those letters.
Letters are case sensitive, for example, “Aa” is not considered a palindrome.

Algorithm

Count each letter size and sum all the part that multiples of two. If there at least one odd value, the answer plus one.

Code

class Solution:
    def longestPalindrome(self, s: str) -> int:
        lowercase = [0] * 26
        uppercase = [0] * 26
        for c in s:
            if c >= 'a' and c <= 'z':
                lowercase[ord(c) - ord('a')] += 1
            if c >= 'A' and c <= 'Z':
                uppercase[ord(c) - ord('A')] += 1
        
        ans, odd = 0, 0
        for i in range(26):
            if lowercase[i] % 2 == 1:
                odd = 1
            ans += lowercase[i] // 2 * 2
            if uppercase[i] % 2 == 1:
                odd = 1
            ans += uppercase[i] // 2 * 2
        
        return ans + odd

http://www.kler.cn/a/444338.html

相关文章:

  • 解决docker环境下aspose-words转换word成pdf后乱码问题
  • ChatGPT重大更新:新增实时搜索和高级语音
  • MySQL数据库——门诊管理系统数据库数据表
  • (五)FT2232HL高速调试器之--三步实现STM32的VSCODE在线仿真工程搭建
  • OpenCV 学习记录:首篇
  • STM32MP1linux根文件系统目录作用
  • BERT模型入门(1)BERT的基本概念
  • 条件随机场(CRF)详解:原理、算法与实现(深入浅出)
  • 【软件工程】简答题系列(山东大学·软院考试专属)
  • pytest接口关联框架封装
  • 将三个list往一个excel表的三个sheet中写入,能用多线程提高写入速度
  • Stream的并行方法parallelStream使用和常见问题
  • python飞机大战游戏.py
  • 详细指南:在Ubuntu 20.04上安装和配置Orbbec SDK及USB设备权限
  • 太速科技-428-基于XC7Z100+ADRV9009的双收双发无线电射频板卡
  • 《Django 5 By Example》读后感
  • 【uniapp】实战一人员交接班
  • 【go语言】reflect包与类型推断
  • 电视机通用遥控技术标准正式公布
  • 开源 AI 智能名片小程序源码在个人 IP 打造中的应用与价值
  • 从 Promise 到 Axios:轻松解锁异步编程
  • WSL Ubuntu
  • Iris简单实现Go web服务器
  • springboot449教学资源共享平台(论文+源码)_kaic
  • OpenCV圆形标定板检测算法findGrid原理详解
  • docker设置容器自动启动