预处理+双指针

lc

lc524

预处理+双指针

class Solution

{

/*

如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在,则返回空字符串

*/

public:

string findLongestWord(string s, vector<string>& dictionary)

{

vector<string> d=dictionary;

sort(d.begin(),d.end(),[&](string& a,string& b)

{

int m=a.size(),n=b.size();

if(m==n)

return a<b;

return m>n;

});//预处理

auto check=[&](string& a,string& b)

{

int x=0,y=0,m=a.size(),n=b.size();

while(x<m && y<n)

{

if(a[x]==b[y])

x++;

y++;

}

return x==m;

};

for(auto& c:d)

{

if(check(c,s))

return c;

}

return "";

}

};

相关推荐
m0_569881471 分钟前
C++中的智能指针详解
开发语言·c++·算法
blackicexs4 分钟前
第九周第三天
算法
自信1504130575913 分钟前
选择排序算法
c语言·数据结构·算法·排序算法
2401_8735449215 分钟前
基于C++的游戏引擎开发
开发语言·c++·算法
add45a15 分钟前
C++中的组合模式
开发语言·c++·算法
無限進步D17 分钟前
简单贪心算法 cpp
c++·算法·贪心算法·蓝桥杯·入门·竞赛
2501_9454235419 分钟前
模板编程中的SFINAE技巧
开发语言·c++·算法
AMoon丶20 分钟前
Golang--垃圾回收
java·linux·开发语言·jvm·后端·算法·golang
承渊政道21 分钟前
【优选算法】(实战感悟二分查找算法的思想原理)
c++·笔记·学习·算法·leetcode·visual studio code
☆56621 分钟前
C++中的策略模式应用
开发语言·c++·算法