Leetcode 522.最长特殊序列II

最长特殊序列II

给定字符串列表,你需要从它们中找出最长的特殊序列。最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)。

子序列可以通过删去字符串中的某些字符实现,但不能改变剩余字符的相对顺序。空序列为所有字符串的子序列,任何字符串为其自身的子序列。

输入将是一个字符串列表,输出是最长特殊序列的长度。如果最长特殊序列不存在,返回 -1 。

   

示例:

输入: "aba", "cdc", "eae"

输出: 3

   

提示:

  1. 所有给定的字符串长度不会超过 10 。
  2. 给定字符串列表的长度将在 [2, 50 ] 之间。
 1 class Solution {
 2     public int findLUSlength(String[] strs) {
 3         int res=-1;
 4         int n=strs.length;
 5         int j=0;
 6         for(int i=0;i<n;i++){
 7             for(j=0;j<n;j++){
 8                 if(i==j) continue;
 9                 if(checkSubs(strs[i],strs[j])) break;
10             }
11             if(j==n) res=Math.max(res,(int)strs[i].length());
12         }
13         return res;
14     }
15 
16     boolean checkSubs(String subs,String str){
17         int index=0;
18         for(int i=0;i<str.length();i++){
19             if(str.charAt(i)==subs.charAt(index)) index++;
20             if(index==subs.length()) break;
21         }
22         return index==subs.length();
23     }
24 }

猜你喜欢

转载自www.cnblogs.com/kexinxin/p/10372531.html