Class Solution

java.lang.Object
g0401_0500.s0472_concatenated_words.Solution

public class Solution extends Object
472 - Concatenated Words.<p>Hard</p> <p>Given an array of strings <code>words</code> ( <strong>without duplicates</strong> ), return <em>all the <strong>concatenated words</strong> in the given list of</em> <code>words</code>.</p> <p>A <strong>concatenated word</strong> is defined as a string that is comprised entirely of at least two shorter words in the given array.</p> <p><strong>Example 1:</strong></p> <p><strong>Input:</strong> words = [&ldquo;cat&rdquo;,&ldquo;cats&rdquo;,&ldquo;catsdogcats&rdquo;,&ldquo;dog&rdquo;,&ldquo;dogcatsdog&rdquo;,&ldquo;hippopotamuses&rdquo;,&ldquo;rat&rdquo;,&ldquo;ratcatdogcat&rdquo;]</p> <p><strong>Output:</strong> [&ldquo;catsdogcats&rdquo;,&ldquo;dogcatsdog&rdquo;,&ldquo;ratcatdogcat&rdquo;]</p> <p><strong>Explanation:</strong> &ldquo;catsdogcats&rdquo; can be concatenated by &ldquo;cats&rdquo;, &ldquo;dog&rdquo; and &ldquo;cats&rdquo;; &ldquo;dogcatsdog&rdquo; can be concatenated by &ldquo;dog&rdquo;, &ldquo;cats&rdquo; and &ldquo;dog&rdquo;; &ldquo;ratcatdogcat&rdquo; can be concatenated by &ldquo;rat&rdquo;, &ldquo;cat&rdquo;, &ldquo;dog&rdquo; and &ldquo;cat&rdquo;.</p> <p><strong>Example 2:</strong></p> <p><strong>Input:</strong> words = [&ldquo;cat&rdquo;,&ldquo;dog&rdquo;,&ldquo;catdog&rdquo;]</p> <p><strong>Output:</strong> [&ldquo;catdog&rdquo;]</p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= words.length <= 10<sup>4</sup></code></li> <li><code>0 <= words[i].length <= 1000</code></li> <li><code>words[i]</code> consists of only lowercase English letters.</li> <li><code>0 <= sum(words[i].length) <= 10<sup>5</sup></code></li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • findAllConcatenatedWordsInADict

      public List<String> findAllConcatenatedWordsInADict(String[] words)