当前位置:网站首页>522. 最长特殊序列 II(贪心&双指针)

522. 最长特殊序列 II(贪心&双指针)

2022-06-28 19:39:00 Harris-H

522. 最长特殊序列 II(贪心&双指针)

需要考虑一个性质:如果一个串的子序列是特殊序列,那么这个串本身也是。

题目就简化成判断字符串是否为其他串的子序列。显然可以贪心+双指针。

时间复杂度: O ( n 2 l ) O(n^2l) O(n2l)

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;
    }
};
原网站

版权声明
本文为[Harris-H]所创,转载请带上原文链接,感谢
https://harris.blog.csdn.net/article/details/125490895