LeetCode小算法记录(四十五)最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z 。

package leetCodeTest;

public class 最长公共前缀 {
    public static void main(String[] args) {
        String[] strs = new String[]{"c","c"};
        String s = longestCommonPrefix(strs);
        System.out.println("s = " + s);
    }

    /**
     * 水平扫描法,按列比较每一个字符,直到出现不相等字符或者
     * 下标大于某一个短字符返回公共最长前缀。
     * @param strs
     * @return
     */
    public static String longestCommonPrefix(String[] strs) {
        if (strs == null || strs.length == 0) return "";
        int i,j;
        for (i=0;i<strs[0].length();i++){
            char c = strs[0].charAt(i);
            for (j=0;j<strs.length;j++){
                if (i==strs[j].length() || strs[j].charAt(i) != c)
                    return strs[0].substring(0,i);
            }
        }
        return strs[0];
    }

}
发布了124 篇原创文章 · 获赞 13 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_31404603/article/details/105207402