522. 最长特殊序列 II(贪心&双指针)
需要考虑一个性质:如果一个串的子序列是特殊序列,那么这个串本身也是。
题目就简化成判断字符串是否为其他串的子序列。显然可以贪心+双指针。
时间复杂度:
class Solution {
public:
int findLUSlength(vector<string>& a) {
int n = a.size();
int ans = -1;
for(int k=0;k<n;k++){
string s = a[k];
int ok = 1;
for(int i=0;i<n;i++){
string t = a[i];
if(i==k||t.size()<s.size()) continue;
int pi=0,pj=0;
int m = (int)s.size();
int l = t.size();
while(pi<m&&pj<l){
if(s[pi]==t[pj]) pi++,pj++;
else pj++;
}
if(pi==m){
ok = 0;
break;
}
}
if(ok) ans=max(ans,(int)s.size());
}
return ans;
}
};