Leetcode 88. 合并两个有序数组(有图解)

88.合并两个有序数组

描述

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

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

注意

  假设字符串的长度不会超过 1010。

示例

  输入:
  “abccccdd”

  输出:
  7
  解释:
  我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。

代码

class Solution {
    public int longestPalindrome(String s) {
        //存储数据 
        int[] count = new int[128];
        for (char c: s.toCharArray())
            count[c]++;

        int ans = 0;
        for (int v: count) {
            ans += v / 2 * 2;
        }
        // 区分abcba 和 abba的情况
        return ans == s.length()? ans: ans + 1;
    }
}

结果

在这里插入图片描述

原创文章 13 获赞 24 访问量 6471

猜你喜欢

转载自blog.csdn.net/Kirito19970409/article/details/105547663