leetcode_solutions/
n2131_longest_palindrome_by_concatenating_two_letter_words.rs1use crate::Solution;
7
8impl Solution {
9 pub fn longest_palindrome(words: Vec<String>) -> i32 {
10 let mut counter = vec![vec![0; 26]; 26];
11 let mut res = 0;
12
13 for word in words.iter() {
14 let word: Vec<char> = word.chars().collect();
15 let a = word[0] as usize - 'a' as usize;
16 let b = word[1] as usize - 'a' as usize;
17
18 if counter[b][a] > 0 {
19 counter[b][a] -= 1;
20 res += 4;
21 } else {
22 counter[a][b] += 1;
23 }
24 }
25
26 for i in 0..26 {
27 if counter[i][i] > 0 {
28 return res + 2;
29 }
30 }
31
32 res
33 }
34}