Code & Func
2019-12-07

第31天。

今天的题目是Longest Word in Dictionary through Deleting:

很常规的题目。

因为题目要求返回的是最长的字符串,同时如果有多个解的话,就返回字典序最小的那个,所以我们先按要求进行一次排序。然后在 check 一下是否符合即可。代码如下:

1
bool check(const string &s, const string &t) {
2
int index = 0, i;
3
4
for(i = 0; i < t.size(); ++i) {
5
while(index < s.size() && s[index] != t[i]) index++;
6
if (index == s.size()) break;
7
else index++;
8
}
9
10
return i == t.size();
11
}
12
string findLongestWord(string s, vector<string>& d) {
13
sort(d.begin(), d.end(),[](const string &s1, const string &s2) {
14
if (s1.size() != s2.size()) return s1.size() > s2.size();
15
else return s1 < s2;
7 collapsed lines
16
});
17
18
for(int i = 0;i < d.size(); i++) {
19
if (check(s, d[i])) return d[i];
20
}
21
return "";
22
}
上一条动态