#+ANKI_DECK: study_deck_02 * TODO 1408. String Matching in an Array :easy: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*1408. String Matching in an Array][1408. String Matching in an Array]] :END: Given an array of string ~words~, return all strings in/ /~words~/ /that are a substring of another word. You can return the answer in *any order*. *Example 1:* #+begin_src Input: words = ["mass","as","hero","superhero"] Output: ["as","hero"] Explanation: "as" is substring of "mass" and "hero" is substring of "superhero". ["hero","as"] is also a valid answer. #+end_src *Example 2:* #+begin_src Input: words = ["leetcode","et","code"] Output: ["et","code"] Explanation: "et", "code" are substring of "leetcode". #+end_src *Example 3:* #+begin_src Input: words = ["blue","green","bu"] Output: [] Explanation: No string of words is substring of another string. #+end_src *Constraints:* - ~1 <= words.length <= 100~ - ~1 <= words[i].length <= 30~ - ~words[i]~ contains only lowercase English letters. - All the strings of ~words~ are *unique*. ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def stringMatching(self, words: List[str]) -> List[str]: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: vector stringMatching(vector& words) { } }; #+end_src