zoukankan      html  css  js  c++  java
  • 最长特殊序列 II

    最长特殊序列 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();
        }
    }

    坑:判断包含关系和递归删除

  • 相关阅读:
    Feature分支
    Bug分支
    分支管理策略
    解决冲突
    创建与合并分支
    分支管理
    Java并发与多线程教程(1)
    Java Thread(线程)案例详解sleep和wait的区别
    Spring在Thread中注入Bean无效的解决方式
    浅谈Java中的hashcode方法
  • 原文地址:https://www.cnblogs.com/yuelien/p/10553778.html
Copyright © 2011-2022 走看看