leetcode原题:
给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 。
在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-palindrome
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
public class LongestPalindrome { public static void main(String[] args) { int aaa = longestPalindrome("aaa"); System.out.println(aaa); } public static int longestPalindrome(String s) { if (s.length() == 1) return 1; Map<Character, Integer> map = new HashMap<>(); int count = 0; for (int i = 0; i < s.length(); i++) { if (map.get(s.charAt(i)) == null) { map.put(s.charAt(i), 1); } else { map.put(s.charAt(i), map.get(s.charAt(i)) + 1); } } for (Integer value : map.values()) { count += value - (value & 1); } return count < s.length() ? ++count : count; } }