首页 > 其他分享 >409. 最长回文串

409. 最长回文串

时间:2023-04-17 20:37:08浏览次数:37  
标签:count ch val res Nch 最长 409 回文

问题描述

给定一个字符串s, 返回由s中字母所构造的最长回文串的长度。

问题分析

符号设定

  • Nch 为ch在回文串中出现的次数
    回文串中最多有一个字符Nch为奇数

算法

class Solution:
    def longestPalindrome(self, s: str) -> int:
        count_ch = {}

        for ch in s:
            if ch not in count_ch:
                count_ch[ ch ] = 1
            else:
                count_ch[ ch ] += 1

        res = 0
        for val in count_ch.values():
            res += val // 2 * 2
            if res % 2 == 0 and val % 2 == 1:
                res += 1

        return res

标签:count,ch,val,res,Nch,最长,409,回文
From: https://www.cnblogs.com/yinhaofei/p/17327371.html

相关文章

  • 团体天梯练习 L2-008 最长对称子串
    L2-008最长对称子串对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定IsPAT&TAPsymmetric?,最长对称子串为sPAT&TAPs,于是你应该输出11。输入格式:输入在一行中给出长度不超过1000的非空字符串。输出格式:在一行中输出最长对称子串的长度。输入样例:IsPAT&TAP......
  • 回文数
    题目描述难度简单给你一个整数x,如果x是一个回文整数,返回true;否则,返回false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121是回文,而123不是。示例1:输入:x=121输出:true示例2:输入:x=-121输出:false解释:从左向右读,为-121。从右向......
  • 回文自动机(PAM)
    瞎扯,不做教程。回文自动机是接受串\(s\)所有本质不同回文子串的类自动机结构。考察该类自动机结构的转移边上字符的含义,因为回文串是回文的,所以从\(s\)转移到\(t\)应该在\(s\)所代表的字符串两边均加上转移边上的字符\(c\)。这样就会有一个问题:考虑每次走转移边字符......
  • 中小型软件企业初始管理记录20140922
    对于人数少于100人的中小型软件企业,员工的初始积极性是最重要的,企业应该考虑做到以下几点:1、薪资可以不高,但企业承诺一定要做到;2、通信费交通费必须考虑合理报销,报销过程要简单;3、加班餐费必须解决好;4、频繁加班后,需要考虑一定形式的团队建设,而且越快越好;5、员工的倒休要鼓励,不能让......
  • 131. 分割回文串
    classSolution{public:boolcheck(strings){intn=s.size();for(inti=0;i<n/2;i++)if(s[i]!=s[n-i-1])returnfalse;returntrue;}vector<vector<string>>res;vecto......
  • 算法-回文链表-24
    /***Definitionforsingly-linkedlist.*publicclassListNode{*publicintval;*publicListNodenext;*publicListNode(intx){val=x;}*}*/publicclassSolution{publicListNodeReverseList(ListNodehead){i......
  • 回文方阵
    #include<stdio.h>#include<string.h>#defineMAXN10inta[MAXN][MAXN];intmain(){intn,t=0;while(scanf("%d",&n)!=EOF){memset(a,0,sizeof(a));t=a[0][n-1]=1;inti=0,j=n-1;while(t<n*n)......
  • 动态规划04——300. 最长递增子序列
    300.最长递增子序列给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例1:输入:nums=[10,9,2,5,3,7,101,18]输出:4解释:最长递......
  • [C++]LeetCode1147. 段式回文
    [C++]LeetCode1147.段式回文题目描述Difficulty:困难RelatedTopics:贪心,双指针,字符串,动态规划,哈希函数,滚动哈希你会得到一个字符串text。你应该把它分成k个子字符串(subtext1,subtext2,…,subtextk),要求满足:subtexti是非空字符串所有子字符串的连接......
  • 5752: 最长公共子序列 动态规划
    描述 一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x1,x2,…,xm>,则另一序列Z=<z1,z2,…,zk>是X的子序列是指存在一个严格递增的下标序列<i1,i2,…,ik>,使得对于所有j=1,2,…,k有:  Xij=Zj例如,序列Z=<B,C,D,B>是序列X=<A,B,C,B,D,A,B>的子......