最长特殊序列 II
class Solution {
    boolean containsSub(String s,String p){
        int i,j;
        for(i=0,j=0;i<p.length()&&j<s.length();j++)
            if(s.charAt(j)==p.charAt(i))
                i++;
        if(i>=p.length())return true;
        return false;
    }
    void removeStr(String p,LinkedList<String>list){
        if(list.contains(p)){
            String s="";
            for(int i=0;i<list.size();i++){
                s=list.get(i);
                if(s.length()<p.length()&&containsSub(p,s)){
                    removeStr(s,list);
                }
            }
            list.remove(p);
        }
    }
    public int findLUSlength(String[] strs) {
        int n=strs.length;
        HashMap<String,Integer>map=new HashMap<>();
        for(String s:strs)
            if(map.containsKey(s))
                map.replace(s, map.get(s)+1);
            else
                map.put(s, 1);
        LinkedList<String>list=new LinkedList<>();
        for(String s:map.keySet())
            list.addFirst(s);
        list.sort(new Comparator<String>(){
            @Override
            public int compare(String o1, String o2) {
                // TODO Auto-generated method stub
                return o2.length()-o1.length();
            }
        });
        int last=list.size(),i=0;
        while(i<list.size()){
            if(map.get(list.get(i))>1)
                removeStr(list.get(i),list);
            else
                i++;
            if(last==list.size())break;
            else last=list.size();
        }
        if(list.size()==0)return -1;
        return list.getFirst().length();
    }
}
坑:判断包含关系和递归删除
最长特殊序列 II的更多相关文章
- Leetcode 522.最长特殊序列II
		最长特殊序列II 给定字符串列表,你需要从它们中找出最长的特殊序列.最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列). 子序列可以通过删去字符串中的某些字符实现,但 ... 
- Java实现 LeetCode 522 最长特殊序列 II(查找最长的非子序列的长度)
		522. 最长特殊序列 II 给定字符串列表,你需要从它们中找出最长的特殊序列.最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列). 子序列可以通过删去字符串中的某些 ... 
- [Swift]LeetCode522. 最长特殊序列 II | Longest Uncommon Subsequence II
		Given a list of strings, you need to find the longest uncommon subsequence among them. The longest u ... 
- 522 Longest Uncommon Subsequence II 最长特殊序列 II
		详见:https://leetcode.com/problems/longest-uncommon-subsequence-ii/description/ C++: 方法一: class Soluti ... 
- [LeetCode] 298. Binary Tree Longest Consecutive Sequence 二叉树最长连续序列
		Given a binary tree, find the length of the longest consecutive sequence path. The path refers to an ... 
- 九度oj题目1342:寻找最长合法括号序列II
		题目1342:寻找最长合法括号序列II(25分) 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:886 解决:361 题目描述: 假如给你一个由’(‘和’)’组成的一个随机的括号序列,当然 ... 
- [LeetCode] Binary Tree Longest Consecutive Sequence II 二叉树最长连续序列之二
		Given a binary tree, you need to find the length of Longest Consecutive Path in Binary Tree. Especia ... 
- [LeetCode] 549. Binary Tree Longest Consecutive Sequence II 二叉树最长连续序列之 II
		Given a binary tree, you need to find the length of Longest Consecutive Path in Binary Tree. Especia ... 
- P1091 合唱队形  DP 最长升序列维护
		题目描述 NN位同学站成一排,音乐老师要请其中的(N-KN−K)位同学出列,使得剩下的KK位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K1,2,…,K,他 ... 
随机推荐
- 【转载】UnityWebRequest的初步使用及常用方法解析
			文章来源:https://blog.csdn.net/qwe25878/article/details/85051911#_35 今天,来学习一下Unity新的网络请求方式UnityWebReques ... 
- 学习进度04(billbill长评数据提取01)
			学习了python写入csv文件自己想了一个小实战,爬取billbill<白色相簿>番剧的长评 网页是动态变化的,往下拉他才会更新出长评,找出关键链接https://api.bilibil ... 
- Percona-Toolkit 之 pt-archiver 删除历史数据
			pt-archiver是Percona-Toolkit工具集中的一个组件,是一个主要用于对MySQL表数据进行归档和清除工具.它可以将数据归档到另一张表或者是一个文件中.pt-archiver在清除表 ... 
- 一个swift版简单的用户名和密码输入textField
			http://www.code4app.com/thread-31992-1-1.html 常见的动画提交按钮 http://www.code4app.com/thread-32239-1-1.htm ... 
- mysql第五篇 : MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
			第五篇 : MySQL 之 视图.触发器.存储过程.函数.事物与数据库锁 一.视图 视图是一个虚拟表(非真实存在的),其本质是‘根据SQL语句获取动态的数据集,并为其命名‘ ,用户使用时只需使用“名称 ... 
- 如何安装Anaconda
			如何安装Anaconda Python作为一门易读.易维护的语言,在工作和学习中应用广泛,被大量用户所欢迎.本文主要给大家介绍一下Anaconda 步骤 1 Anaconda在官网就可以下载,网址:h ... 
- category添加属性
			category添加属性 面试题 Category的实现原理,以及Category为什么只能加方法不能加属性. Category中有load方法吗?load方法是什么时候调用的?load 方法能继承吗 ... 
- 用cat写入
			$ cat >> gzip_work.sh <<EOF > mkdir gzip/workshell > EOF 
- java菜鸟第一天
- Vuex基本介绍
			1.什么是Vuex Vuex是一个专为vue.js应用程序开发的状态管理模式. 状态管理:data里面的变量都是vue的状态. 2.为什么要用Vuex 当我们构建一个中大型的单页面应用程序时,Vuex ... 
