题解 | #最长公共前缀#

最长公共前缀

https://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47

import java.util.*;


public class Solution {
    /**
     * 
     * @param strs string字符串一维数组 
     * @return string字符串
     */
    public String longestCommonPrefix (String[] strs) {

        // 整体判断
        if(strs.length == 0){
            return "";
        }

        // 使用集合来排序
        ArrayList<String> list = new ArrayList();

        for(String s : strs){
            list.add(s);
        }

        list.sort((s1,s2) -> {return s1.compareTo(s2);});

        // 排序后我们直接用第一个和最后一个比较获取最长公共前缀
        StringBuffer res = new StringBuffer();

        String s1 = list.get(0);
        String s2 = list.get(list.size()-1);

        // 符合条件加入,不符合跳出
        for(int i = 0;i < Math.min(s1.length(),s2.length());i++){
            if(s1.charAt(i) == s2.charAt(i)){
                res.append(s1.charAt(i));
            }else{
                break;
            }
        }

        return res.toString();

    }
}

全部评论

相关推荐

11-04 19:05
已编辑
东莞城市学院 单片机
不知道怎么取名字_:你这个要实习两年?哪有这么久的,感觉就是即使你毕业了,但还按实习的话,是不是不用给你缴社保公积金啥的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务