链接 题目. 难度: middle,但我觉得是high 解答: 这个题咋一看思路很好找,可以用动态规划,计算前n-1长度的子串,然后递推n长度的结果。可是dp一般不适用与这种需要中间结果的,会浪费大量空间。所以用dfs。 package main import fmt func dfs(pre []string, s string, i, j int, palis [][]bool, result *[][]string) { if i > j { tmp := make([]string, len(pre)) copy(tmp, pre) *result = append(