给你一个整数 n
和一个包含 n
个节点的 无向图 ,节点编号从 0 到 n - 1
,以及一个二维数组 edges
,其中 edges[i] = [ui, vi]
表示节点 ui
和节点 vi
之间有一条边。
同时给你一个长度为 n
的字符串 label
,其中 label[i]
是与节点 i
关联的字符。
你可以从任意节点开始,移动到任意相邻节点,每个节点 最多 访问一次。
返回通过访问一条路径,路径中 不包含重复 节点,所能形成的 最长回文串 的长度。
回文串 是指正着读和反着读相同的字符串。
示例 1:
输入: n = 3, edges = [[0,1],[1,2]], label = "aba"
输出: 3
解释:
0 → 1 → 2
,形成字符串 "aba"
。示例 2:
输入: n = 3, edges = [[0,1],[0,2]], label = "abc"
输出: 1
解释:
示例 3:
输入: n = 4, edges = [[0,2],[0,3],[3,1]], label = "bbac"
输出: 3
解释:
0 → 3 → 1
,形成字符串 "bcb"
。
提示:
1 <= n <= 14
n - 1 <= edges.length <= n * (n - 1) / 2
edges[i] == [ui, vi]
0 <= ui, vi <= n - 1
ui != vi
label.length == n
label
只包含小写英文字母。