leetcode_solutions/
n2131_longest_palindrome_by_concatenating_two_letter_words.rs

1/*
2 * No: 2131
3 * Title: Longest Palindrome by Concatenating Two Letter Words
4 */
5
6use 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}