zoukankan      html  css  js  c++  java
  • LeetCode#524通过删除字母匹配到字典里最长单词-java中CompareTo方法用法以及Comparator中Compare方法返回值

    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    
    /*
    524. 通过删除字母匹配到字典里最长单词
    给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。
    
    示例 1:
    
    输入:
    s = "abpcplea", d = ["ale","apple","monkey","plea"]
    
    输出:
    "apple"
    示例 2:
    
    输入:
    s = "abpcplea", d = ["a","b","c"]
    
    输出:
    "a"
    说明:
    
    所有输入的字符串只包含小写字母。
    字典的大小不会超过 1000。
    所有输入的字符串长度不会超过 1000
     */
    public class p524 {
        /*public String findLongestWord(String s, List<String> d) {
            Collections.sort(d, new Comparator<String>() {
                @Override
                public int compare(String o1, String o2) {
                    if(o1.length()!=o2.length()){
                        return o2.length()-o1.length();
                    }
                    else {
                        int len=o1.length();
                        return o1.compareTo(o2);
                    }
                }
            });
            String res="";
            for(String str:d){
                if(isChildXulie(s,str))return str;
            }
            return res;
    
    
        }*/
        public String findLongestWord(String s, List<String> d){
            String res="";
            for(String str:d){
                if(isChildXulie(s,str)){
                    int len=str.length();
                    if(len>res.length()){
                        res=str;
                    }
                    else if(len==res.length()) {
                        res=res.compareTo(str)>0?str:res;
    
                    }
                }
            }
            return res;
        }
        public boolean isChildXulie(String s1,String s2){//判断S2是不是s1的子序列
            int j=0;
            for(int i=0;i<s1.length();i++){
                if(j<s2.length()&&s1.charAt(i)==s2.charAt(j)){
                    j++;
                }
    
            }
            if (j==s2.length()){
                return true;
            }
            return false;
        }
    
    }
    

      运行结果:

    注释掉的:

    第二种方法:

    CompareTo方法:

    Comparator中Compare方法返回值:

               返回值为1则交换两个值,返回值小于等于0不做交换

  • 相关阅读:
    indy Sftp 编程 ftp安全访问
    关于MySql里的字段
    php---魔术方法(__tostring(),__set_state())
    看了这个才发现jQuery源代码不是那么晦涩
    JS的Document属性和方法小结
    JS的Document属性和方法
    原始JS选择器使用方法总结
    docker 镜像配置
    Docker部署SpringBoot项目
    springboot 和spring cloud 博客分享
  • 原文地址:https://www.cnblogs.com/jifeng0902/p/13295365.html
Copyright © 2011-2022 走看看