参考:https://www.cnblogs.com/sasuke-/p/5396843.html
https://blog.csdn.net/someone_and_anyone/article/details/81044153
https://blog.csdn.net/someone_and_anyone/article/details/81044153
https://blog.csdn.net/someone_and_anyone/article/details/81044153
最长子序列(leetcode 524)
用每个字符串同当前字符串进行匹配,看当前字符串是否是要匹配字符串的子串。
对所有字符串先排字典序,然后依次同要匹配的字符串匹配。
#include#include #include using namespace std;class Solution {public: string findLongestWord(string s, vector & d) { sort(d.begin(), d.end()); int s_len = s.length(); string tmp = ""; int len_now = -1; for(auto it=d.begin(); it!=d.end(); it++) { int i_len = (*it).length(); if(s_len < i_len && i_len < len_now) { continue; } if(isValid(s, (*it)) && i_len > len_now) { tmp = (*it); len_now = i_len; } } return tmp; } bool isValid(string& s1, string& s2) { int len1 = s1.length(), len2 = s2.length(); int i=0,j=0; for(; i s_v = { "ale","apple","monkey","plea"}; string s1 = "abpcplea"; string res = sol.findLongestWord(s1, s_v); cout << res << endl; return 0;}