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

最长回文串

时间:2023-08-07 19:45:34浏览次数:32  
标签:count map HashMap 示例 最长 回文

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

在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串。

示例 1:

输入:s = "abccccdd"
输出:7
解释:
我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。
示例 2:

输入:s = "a"
输出:1
示例 3:

输入:s = "aaaaaccc"
输出:7

屎山代码,效率低

class Solution {
    public int longestPalindrome(String s) {
        //使用map记录不能成对的数,之后减去count,再+1,因为中间是可以冗余一个单字母
        HashMap<Integer,Integer> map = new HashMap<>();
        for(int i=0;i<s.length();i++){
            map.put(s.charAt(i)-'a',map.getOrDefault(s.charAt(i)-'a',0)+1);
        }
        int count = 0;
        for(Map.Entry<Integer, Integer> entry : map.entrySet()){
            if(entry.getValue()%2==1){
                count++;
            }
        }
        if(count==0){
            return s.length();
        }else{
            return s.length()+1-count;
        }
    }
}

标签:count,map,HashMap,示例,最长,回文
From: https://www.cnblogs.com/xiaochaofang/p/17612537.html

相关文章

  • 125. 验证回文串
    如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。字母和数字都属于字母数字字符。给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 。示例1:输入:s="Aman,aplan,acanal:......
  • LeetCode 3. 无重复字符的最长子串
    classSolution{public:intres=0;intlengthOfLongestSubstring(strings){intn=s.size();if(!n)return0;boolst[128]={false};for(intj=0,i=0;j<n;j++){while(j&&st[s[j]]==true......
  • 字符串回文,翻转
    @TOC前言从这篇文章开始进行算法的学习,开启新的篇章。一、字符串回文字符串回文:是指一个字符串从左到右读和从右到左读是一样的,即它的字符顺序颠倒后仍然保持不变。例如,"level"和"madam"就是回文字符串。在编程中,我们可以使用不同的算法来判断一个字符串是否是回文。方法一:将字......
  • Codeforces 1855B:Longest Divisors Interval 最长的连续约数区间
    1855B.LongestDivisorsIntervalDescription:对于一个整数\(n\)\((1\leqn\leq10^{18})\),找到一段最长的区间\([l,r]\),使得区间内所有数均为\(n\)的约数。Analysis:如果\(n\)是一个奇数(非\(2\)的倍数),由于\(odd=odd\timesodd\),则不可能有连续的两个整数均为......
  • Fortinet检测命令控制——就是通过心跳,最短60s,最长1天的周期,检测偏离度0.2
    id:3255ec41-6bd6-4f35-84b1-c032b18bbfcbname:Fortinet-Beaconpatterndetecteddescription:|'IdentifiespatternsinthetimedeltasofcontactsbetweeninternalandexternalIPsinFortinetnetworkdatathatareconsistentwithbeaconing.A......
  • 最长XX子序列
    @目录1最长上升子序列1.1求最长上升子序列的长度-分治解1.2最长上升子序列-DP解1.3最长上升子序列-贪心解2其他最长XX子序列2.1最长严格上升子序列实现2.2最长不严格上升子序列实现2.3最长严格下降子序列实现2.4最长不严格下降子序列实现Last1最长上升子序列最长......
  • [算法题python]14. 最长公共前缀
    编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例1:输入:strs=["flower","flow","flight"]输出:"fl"示例2:输入:strs=["dog","racecar","car"]输出:""解释:输入不存在公共前缀。 提示:......
  • 代码随想录算法训练营第四十一天| 1143.最长公共子序列 1035.不相交的线 53. 最大
    1143.最长公共子序列  要求:可以跳过,找出来最长符合的节点难点:如何跳过了之后仍然保留之前的值思路:如果不符,并不是dp[i-1][j-2]等于之前的值,而是dp[i][j]等于它的相关节点以上很重要代码:1//要求:两个子数组,可以删减跳过,找出最长的长度2//思路:dp[n][m]代表第......
  • 2781.最长合法子字符串的长度-354
    最长合法子字符串的长度给你一个字符串word和一个字符串数组forbidden。如果一个字符串不包含forbidden中的任何字符串,我们称这个字符串是合法的。请你返回字符串word的一个最长合法子字符串的长度。子字符串指的是一个字符串中一段连续的字符,它可以为空。示例......
  • 动态规划处理最长公共子串模型
    动态规划解决最长子序列和最长公共子串一,最长公共子序列1.1问题描述最长公共子序列,是一道非常经典的动态规划题目,题目就是让我们求两个字符串的最长的公共子序列长度。输入:str1="abcde",str2="ace"输出:3解释:最长公共子序列是"ace"。它的长度是3首先读者会有一个疑问,......