g0401_0500.s0472_concatenated_words.readme.md Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java17 Show documentation
Show all versions of leetcode-in-java17 Show documentation
Java Solution for LeetCode algorithm problems, continually updating
472\. Concatenated Words
Hard
Given an array of strings `words` (**without duplicates**), return _all the **concatenated words** in the given list of_ `words`.
A **concatenated word** is defined as a string that is comprised entirely of at least two shorter words in the given array.
**Example 1:**
**Input:** words = ["cat","cats","catsdogcats","dog","dogcatsdog","hippopotamuses","rat","ratcatdogcat"]
**Output:** ["catsdogcats","dogcatsdog","ratcatdogcat"]
**Explanation:** "catsdogcats" can be concatenated by "cats", "dog" and "cats"; "dogcatsdog" can be concatenated by "dog", "cats" and "dog"; "ratcatdogcat" can be concatenated by "rat", "cat", "dog" and "cat".
**Example 2:**
**Input:** words = ["cat","dog","catdog"]
**Output:** ["catdog"]
**Constraints:**
* 1 <= words.length <= 104
* `0 <= words[i].length <= 1000`
* `words[i]` consists of only lowercase English letters.
* 0 <= sum(words[i].length) <= 105