1. 題目來源
2. 題目說明
3. 題目解析
方法一:暴力+常規解法
水題一個,採用直接進行暴力判斷即可,string
中的 find
方法進行子串匹配即可。
參見代碼如下:
// 執行用時 :8 ms, 在所有 C++ 提交中擊敗了100.00%的用戶
// 內存消耗 :8.4 MB, 在所有 C++ 提交中擊敗了100.00%的用戶
class Solution {
public:
vector<string> stringMatching(vector<string>& words) {
vector<string> vt;
for (int i = 0; i < words.size(); ++i) {
for (int j = 0; j < words.size(); ++j) {
if (i == j) continue;
if (words[j].find(words[i]) != words[j].npos) {
vt.push_back(words[i]);
break;
}
}
}
return vt;
}
};
手速題必備的 auto
版本。
參見代碼如下:
// 執行用時 :20 ms, 在所有 C++ 提交中擊敗了100.00%的用戶
// 內存消耗 :9.2 MB, 在所有 C++ 提交中擊敗了100.00%的用戶
class Solution {
public:
vector<string> stringMatching(vector<string>& words) {
vector<string> vt;
for (auto i : words) {
for (auto j : words) {
if (i == j) continue;
if (j.find(i) != -1) {vt.push_back(i); break;}
}
}
return vt;
}
};