diff --git a/src/main/java/com/dota/str/_2131/Solution.java b/src/main/java/com/dota/str/_2131/Solution.java new file mode 100644 index 0000000..1a52254 --- /dev/null +++ b/src/main/java/com/dota/str/_2131/Solution.java @@ -0,0 +1,36 @@ +package com.dota.str._2131; + +import java.util.HashMap; +import java.util.Map; + +class Solution { + public static void main(String[] args) { + new Solution().longestPalindrome(new String[]{"em","pe","mp","ee","pp","me","ep","em","em","me"}); + } + public int longestPalindrome(String[] words) { + Map map = new HashMap<>(); + for (String word : words) { + map.put(word, map.getOrDefault(word, 0) + 1); + } + var res = 0; + for (String word : words) { + if (map.get(word) == 0) {continue;} + if (word.charAt(0)==word.charAt(1) && map.get(word)==1) continue; + var s = ("" + word.charAt(1)) + word.charAt(0); + if (map.getOrDefault(s, 0) > 0) { + res += 4; + map.put(s, map.get(s) - 1); + map.put(word, map.get(word) - 1); + } + } + for (Map.Entry entry : map.entrySet()) { + if (entry.getValue() > 0) { + var s = entry.getKey(); + if (s.charAt(0) == s.charAt(1)) { + return res + 2; + } + } + } + return res; + } +} \ No newline at end of file