Solution 1
显然是对 0139. Word Break 的延申,有效性判定变成结果搜索,从头开始逐个单词的匹配。
难点:直接使用DFS会出现大量的重复计算,使用记忆化搜索改进
记忆化搜索:引入一个哈希表,保存索引 i i i向后之后缀的所有方案
边界判定:如果到达结尾,答案缺省为空串,使用空格拼接时用以判断
可以用的剪枝:如果未确定长度不满足任何一个单词,直接跳过(未实现)
- 时间复杂度: O ( n ⋅ 2 n ) O(n \cdot 2^n) O(n⋅2n),其中 n n n为输入字符串的长度。最坏情况下,每个位置都会划分考察并进行计算,每一个结果的子串需要 O ( n ) O(n) O(n)的生成时间
- 空间复杂度: O ( n ⋅ 2 n ) O(n \cdot 2^n) O(n⋅