返回轨道
算法 · 2026-05-14 · 17 阅读

P70 最长回文串的长度

算法 17 阅读

信号摘要

难度:Easy · 时长:04:10 · leetcode 409 · lintcode 627

P70 最长回文串的长度

未对外公开播放权限
点击查看说明

描述

这个题目说的是,给你一个包含大小写英文字母的字符串,你要用这些字母构建一个最长的回文字符串,并返回它的长度。

比如说,给你的字符串 s 是:

aaabccdd

你能用它构建的回文串的最大长度是 7,因此你要返回的就是数字 7。

长度为 7 的回文串有多种构建方式,随便举一种,比如 acdbdca

代码

public class AlgoCasts {

  // Time: O(n), Space: O(m)
  public int lengthOfLongestPalindrome(String s) {
    int[] d = new int[256];
    int oddNum = 0;
    for (char c: s.toCharArray())
      ++d[c];
    for (int count: d)
      if (count % 2 == 1)
        ++oddNum;
    int unUsed = Math.max(0, oddNum-1);
    return s.length() - unUsed;
  }

}

📡 通讯频道