# Solving Leetcode Interviews in Seconds with AI: String Matching in an Array


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "1408" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> 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:  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.  

	# Explanation
	Here's the approach to solve this problem:

*   **Iterate and Compare:** The core idea is to iterate through each word in the input array and check if it is a substring of any other word in the array.
*   **Avoid Self-Comparison:** Make sure to not compare a word against itself.
*   **Efficient Substring Check:** Use Python's `in` operator, which offers an efficient way to determine if one string is a substring of another.

*   **Runtime Complexity:** O(n^2 * m), where n is the number of words and m is the average length of the words.
*   **Storage Complexity:** O(k), where k is the number of substring words.

	
	# Code
	```python
	def stringMatching(words):
    result = []
    for i in range(len(words)):
        for j in range(len(words)):
            if i != j and words[i] in words[j]:
                if words[i] not in result:
                    result.append(words[i])
    return result
	```
			
