---
###### tags: `Leetcode`
---
# Leetcode 1408. String Matching in an Array
[link](https://leetcode.com/problems/string-matching-in-an-array/)
---
Given an array of string words, return all strings in words that is a substring of another word. You can return the answer in any order.
A substring is a contiguous sequence of characters within a string
#### Example 1:
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.
#### Example 2:
Input: words = ["leetcode","et","code"]
Output: ["et","code"]
Explanation: "et", "code" are substring of "leetcode".
#### Example 3:
Input: words = ["blue","green","bu"]
Output: []
Explanation: No string of words is substring of another string.
#### Constraints:
- 1 <= words.length <= 100
- 1 <= words[i].length <= 30
- words[i] contains only lowercase English letters.
- All the strings of words are unique.
---
For each words[i], check if it’s a substring of words[j] (0 <= j < N && i != j). Once find a match, we can push words[i] to result and continue to word[i + 1].
#### Solution 1
```python=
class Solution:
def stringMatching(self, words: List[str]) -> List[str]:
lst = []
for i, w1 in enumerate(words):
for j, w2 in enumerate(words):
if i != j and (w1 in w2):
if w1 not in lst: lst.append(w1)
return lst
```
O(T): O(n^2)
O(S): O(n)