问题描述:
- 给定一个字符串数组
words
,数组中的每个字符串都可以看作是一个单词。- 按任意顺序返回
words
中是其他单词的子字符串的所有单词。
- 按任意顺序返回
核心思路:
- 暴力法解题,两重循环,判断内循环的字符串是否包含外循环的字符串。
代码实现:
class Solution
{
public:
vector<string> stringMatching(vector<string>& words)
{
vector<string> ans;
for(int i = 0; i < words.size(); ++i) for(int j = 0; j < words.size(); ++j)
{
if(words[i].size() >= words[j].size()) continue; // 排除了两个字符串相等的情况
if(words[j].find(words[i]) != string::npos)
{
ans.push_back(words[i]);
break;
}
}
return ans;
}
};