...

/

Solution: Number of Ways to Form Target String Given a Dictionary

Solution: Number of Ways to Form Target String Given a Dictionary

Let's solve the Number of Ways to Form Target String Given a Dictionary problem using the Dynamic Programming pattern.

Statement

You are given a list of nn strings, words, where each string has the same length mm, and a target string, target, of length tt. A target can be formed using the given words under the following rules:

  • You must build the target from left to right.

  • To form the ith character (0-indexed) of target, you can choose any kth character of any jth string in words, i.e., target[i] = words[j][k].

  • Once you use the kth character of the jth string in words, your next letter can't be a character from index 00 through k of any string in words. In simple words, all characters to the left of or at index k become unusable for every string, and the next letter must come from positions strictly to the right of k.

  • Repeat the process until you’ve formed the complete target.

Note: You can use multiple characters from the same string in words, as long as the rules above are followed.

Your task is to find and return the number of ways to form the string target from words. As the answer might be too large, return it modulo 109+710^{9} + 7.

Constraints:

  • 11 \leq words.length 1000\leq 1000

  • 11 \leq ...