Search⌘ K
AI Features

Word Break II

Explore dynamic programming techniques to break a string into all possible sequences of valid words from a given dictionary. This lesson helps you understand problem constraints, practice solutions, and implement efficient algorithms for Word Break II.

Statement

You are given a string, s, and an array of strings, word_dict, representing a dictionary. Your task is to add spaces to s to break it up into a sequence of valid words from word_dict. We are required to return an array of all possible sequences of words (sentences). The order in which the sentences are listed is not significant.

Note: The same dictionary word may be reused multiple times in the segmentation.

Constraints:

  • 11 \leq s.length 20\leq 20

  • 11 \leq word_dict.length 1000\leq 1000

  • 11 \leq word_dict[i].length 10\leq 10

  • s and word_dict[i] consist of only lowercase English letters.

  • All the strings of word_dict are unique.

Examples

canvasAnimation-image
1 / 2

Understand the problem

Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:

Word Break II

1.

What is the output if the following input string and dictionary are provided as input?

s = “pineapplepenapple”

word_dict = [“apple”, “pen”, “applepen”, “pine”, “pineapple”]

A.

[“pine apple pen apple”, “pineapple pen apple”, “pine applepen apple”]

B.

[“pine apple pen apple”, “pine applepen apple”]

C.

[“pineapple pen apple”]

D.

[]


1 / 3

Figure it out!

We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.

Sequence - Vertical
Drag and drop the cards to rearrange them in the correct sequence.

1
2
3
4
5
6

Try it yourself

Implement your solution in the following coding playground.

Python
usercode > main.py
def word_break(s, word_dict):
# Replace this placeholder return statement with your code
return []
Word Break II