首页 > 其他分享 >【双指针】LeetCode 409. 最长回文串

【双指针】LeetCode 409. 最长回文串

时间:2023-01-21 19:33:21浏览次数:51  
标签:字符 LeetCode char result occurs 409 回文

题目链接

409. 最长回文串

思路

遍历字符串过程中统计字符出现个数,如果达到2则说明可以放到回文串的两端,需要 result += 2

遍历完之后的回文串如果长度小于 s,说明 s 中存在奇数字符,则返回 result + 1。因为放两个奇数字符会破坏回文性。

代码

class Solution {
    public int longestPalindrome(String s) {
        char[] occurs = new char[128];
        int result = 0;

        for(char c : s.toCharArray()){
            occurs[c]++;
            if(occurs[c] == 2){
                result += 2;
                occurs[c] = 0;
            }
        }

        return result < s.length() ? result + 1 : result;
    }
}

标签:字符,LeetCode,char,result,occurs,409,回文
From: https://www.cnblogs.com/shixuanliu/p/17063993.html

相关文章

  • LeetCode.541 反转字符串II
    1.题目给定一个字符串s和一个整数k,从字符串开头算起,每计数至2k个字符,就反转这2k字符中的前k个字符。如果剩余字符少于k个,则将剩余字符全部反转。如果剩余字符小......
  • LeetCode.面试题02.05-链表求和-题解分析
    题目来源面试题02.05.链表求和题目详情给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并......
  • [LeetCode] 1824. Minimum Sideway Jumps
    Thereisa 3laneroad oflength n thatconsistsof n+1 points labeledfrom 0 to n.Afrog starts atpoint 0 inthe second lane andwantsto......
  • 判断回文数
    题目:  解法一:将整数转换为字符串python3:classSolution:defisPalindrome(self,x:int)->bool:returnstr(x)==str(x)[::-1]解法二:只需要判......
  • LeetCode.383 赎金信
    1.题目给你两个字符串:ransomNote和magazine,判断ransomNote能不能由magazine里面的字符构成。如果可以,返回true;否则返回false。magazine中的每个字符只能在rans......
  • 【LeetCode链表#12】链表相交
    链表相交同:160.链表相交力扣题目链接(opensnewwindow)给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回n......
  • LeetCode——刷题笔记二
         ......
  • LeetCode.202 快乐数
    1.题目编写一个算法来判断一个数n是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为1,也......
  • 【DFS】LeetCode 951. 翻转等价二叉树
    题目链接951.翻转等价二叉树思路如果二叉树root1,root2根节点值相等,那么只需要检查他们的孩子是不是相等就可以了。如果root1或者root2是null,那么只有在他们都......
  • 代码随想录算法训练营day09 | leetcode 28. 实现 strStr()
    LeetCode28.实现strStr()牢记一点:next[i]元素表示【0,i】子串的最长相等前后缀个数,也是模式串与主串匹配不相等时模式串的下一个比较索引分析1.0前缀是指不包含最后......