14. 最长公共前缀

题目描述

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

方法 暴力算法

先判断字符串数组是否有为空,为空直接返回空
令第一个字符串作为基准进行比较
设置一个长度,作为最后最长公共前缀的长度
循环判断,选取最小长度

代码

package easy.最长公共前缀14;
class Solution {
    public String longestCommonPrefix(String[] strs) {
        //如果为空,直接返回空
        if ("".equals(strs[0])) return "";
        //第一个作为基准进行比较
        String s = strs[0];
        //记录最长公共前缀的长度
        int len = s.length();
        for (int i = 1; i < strs.length; i++) {
            int l = 0;
            if ("".equals(strs[i])) return "";
            int length = Math.min(s.length(), strs[i].length());
            for (int j = 0; j < length; j++) {
                if (s.charAt(j) == strs[i].charAt(j)) {
                    l++;
                } else {
                    break;
                }
            }
            if (l < len) len = l;
        }
        return s.substring(0, len);
    }
}

发表回复