Replace Words
Explore how to use trie data structures to replace postfixes in a sentence with their shortest matching prefixes from a given dictionary. This lesson teaches you to efficiently identify and substitute word parts, handling multiple prefix matches and returning modified sentences accordingly.
We'll cover the following...
Statement
In this problem, we are considering the words that are composed of a
You’re given a dictionary, dictionary, consisting of prefixes, and a sentence, sentence, which has words separated by spaces only. Your task is to replace the postfix in sentence with their prefixes given in dictionary (if found) and return the modified sentence.
A couple of points to keep in mind:
-
If a postfix in the sentence matches more than one prefix in the dictionary, replace it with the prefix that has the shortest length. For example, if we have the sentence “iphone is amazing”, and the dictionary {“i”, “ip”, “hone”}, then the word “iphone” has two prefixes in the dictionary “i” and “ip”, but we will replace it with the one that is shorter among the two, that is, “i”.
-
If there is no root word against any word in the sentence, leave it unchanged.
Constraints:
-
dictionary.length -
dictionary[i].length dictionary[i]consists of only lowercase letters.-
sentence.length - The number of words in
sentenceis in the range . - The length of each word in
sentenceis in the range . - Two consecutive words in
sentenceshould be separated by exactly one space. - All words in
sentenceare lowercase. - For a word in
sentence, the length of a prefix can be , and the length of a postfix can be .
Examples
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:
Choose the correct output given the following inputs.
sentence = “when life gives you lemons make lemonade”
dictionary = {“li”, “gi”, “lem”, “m”, “l”}
“when li gi you lem make l”
“when l gi you lem m lem”
“when l gi you l make l”
“when l gi you l m l”
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.
Try it yourself
Implement your solution in main.java in the following coding playground. You’ll need the provided supporting code to implement your solution.
import java.util.*;public class Main {public static String replaceWords(String sentence, List<String> dictionary) {// Replace this placeholder return statement with your codereturn "";}}