522. 最长特殊序列 II

522. 最长特殊序列 II

class Solution {
 public:
  bool check(string s, string t) {
    int idx = 0;
    for (int i = 0; i < s.size(); i++) {
      if (s[i] == t[idx]) idx++;
      if (idx == t.size()) return true;
    }
    return false;
  }

  int findLUSlength(vector &strs) {
    int n = strs.size();
    int res = 0;
    sort(strs.begin(), strs.end(),
         [](string &a, string &b) { return a.size() > b.size(); });
    for (int i = 0; i < n; i++) {
      int len = strs[i].size();
      bool suc = true;
      for (int k = 0; k < strs.size() && suc; k++) {
        if (k == i) continue;
        if (check(strs[k], strs[i])) suc = false;
      }
      if (suc) return strs[i].size();
    }
    return -1;
  }
};

你可能感兴趣的:(522. 最长特殊序列 II)