最长公共前缀

原创
2020/04/16 10:12
阅读数 93

Leetcode: 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。

主要用到

Arrays.sort();

主要思路:用这个方法将字符串数组进行排序,对排序后的结果只需要去判断数组中第一个字符串和最后一个字符串的最长公共前缀即可。

public static String replaceSpace(String[] strs) {
    if (checkStrs(strs)) {
        return "";
    }

    int len = strs.length;

    StringBuilder res = new StringBuilder();

    Arrays.sort(strs);
    int m = strs[0].length();
    int n = strs[len - 1].length();
    int num = Math.min(m, n);
    for (int i = 0; i < num; i++) {
        if (strs[0].charAt(i) == strs[len - 1].charAt(i)) {
            res.append(strs[0].charAt(i));
        } else {
            break;
        }
    }
    return res.toString();
}


// 检查是否有空字符串
private static boolean checkStrs(String[] strs) {
    boolean flag = false;
    if (null != strs) {
        for (int i = 0; i < strs.length; i++) {
            if (strs[i] != null && strs[i].length() != 0) {
                flag = true;
            } else {
                flag = false;
                break;
            }
        }
    }
    return flag;
}
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部