题解 | #最长公共前缀#

最长公共前缀

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();

    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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