Class Solution
- java.lang.Object
-
- g2701_2800.s2791_count_paths_that_can_form_a_palindrome_in_a_tree.Solution
-
public class Solution extends Object
2791 - Count Paths That Can Form a Palindrome in a Tree.Hard
You are given a tree (i.e. a connected, undirected graph that has no cycles) rooted at node
0consisting ofnnodes numbered from0ton - 1. The tree is represented by a 0-indexed arrayparentof sizen, whereparent[i]is the parent of nodei. Since node0is the root,parent[0] == -1.You are also given a string
sof lengthn, wheres[i]is the character assigned to the edge betweeniandparent[i].s[0]can be ignored.Return the number of pairs of nodes
(u, v)such thatu < vand the characters assigned to edges on the path fromutovcan be rearranged to form a palindrome.A string is a palindrome when it reads the same backwards as forwards.
Example 1:

Input: parent = [-1,0,0,1,1,2], s = “acaabc”
Output: 8
Explanation:
The valid pairs are:
-
All the pairs (0,1), (0,2), (1,3), (1,4) and (2,5) result in one character which is always a palindrome.
-
The pair (2,3) result in the string “aca” which is a palindrome.
-
The pair (1,5) result in the string “cac” which is a palindrome.
-
The pair (3,5) result in the string “acac” which can be rearranged into the palindrome “acca”.
Example 2:
Input: parent = [-1,0,0,0,0], s = “aaaaa”
Output: 10
Explanation: Any pair of nodes (u,v) where u < v is valid.
Constraints:
n == parent.length == s.length1 <= n <= 1050 <= parent[i] <= n - 1for alli >= 1parent[0] == -1parentrepresents a valid tree.sconsists of only lowercase English letters.
-
-
-
Constructor Summary
Constructors Constructor Description Solution()
-