582. Word Break II

2019-07-16  本文已影响0人  鸭蛋蛋_8441

Description

Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where each word is a valid dictionary word.

Return all such possible sentences.

Example

Example 1:

Input:"lintcode",["de","ding","co","code","lint"]

Output:["lint code", "lint co de"]

Explanation:

insert a space is "lint code",insert two spaces is "lint co de".

Example 2:

Input:"a",[]

Output:[]

Explanation:dict is null.

思路:

优化方案1

用 Word Break 这个题的思路,使用 is_possible[i] 代表从 i 开始的后缀是否能够被 break,在 DFS 找所有方案的时候,通过 is_possible 可以进行可行性剪枝.

优化方案2

直接使用 memo[i] 记录从位置 i 开始的后缀,能够被 break 出来的所有方案

代码:

优化方案一:

自己写的,可能有点笨。

优化方案2

上一篇下一篇

猜你喜欢

热点阅读