题解:
class Solution {
public:
string findLongestWord(string s, vector<string>& dictionary) {
std::string res;
for (auto & str : dictionary) {
int i = 0;
int j = 0;
while (i < str.size() && j < s.size()) {
if (str[i] == s[j]) {
++i;
}
++j; // 贪心
}
// 可以构成dictionary中的str
if (i == str.size()) {
if (res.size() == 0) {
res = str;
}
if (str.size() > res.size() || (str.size() == res.size() && str.compare(res) < 0)) {
res = str;
}
}
}
return res;
}
};