All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g1401_1500.s1408_string_matching_in_an_array.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g1401_1500.s1408_string_matching_in_an_array;

// #Easy #String #String_Matching #2022_03_26_Time_8_ms_(24.88%)_Space_43.3_MB_(13.46%)

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 1408 - String Matching in an Array\.
 *
 * Easy
 *
 * Given an array of string `words`. Return all strings in `words` which is substring of another word in **any** order.
 *
 * String `words[i]` is substring of `words[j]`, if can be obtained removing some characters to left and/or right side of `words[j]`.
 *
 * **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:** []
 *
 * **Constraints:**
 *
 * *   `1 <= words.length <= 100`
 * *   `1 <= words[i].length <= 30`
 * *   `words[i]` contains only lowercase English letters.
 * *   It's **guaranteed** that `words[i]` will be unique.
**/
public class Solution {
    public List stringMatching(String[] words) {
        Set set = new HashSet<>();
        for (String word : words) {
            for (String s : words) {
                if (!word.equals(s) && word.length() < s.length() && s.contains(word)) {
                    set.add(word);
                }
            }
        }
        return new ArrayList<>(set);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy