每日两道算法题 - 最大公共前缀(高频)

问题

给定一个字符数组,获取该数组中多个字符的最大公共前缀,如果不存在则返回空串
输入:["flower","flow","flight"]
输出:"fl"

思路

1)假定数组中第一个字符为最大公共前缀,并和数组中其他字符逐一进行比较,获取公共部分
2)判断第二个字符中是否存在第一个字符,如果不存在,则对第一个字符截取一位并继续比较, 如果存在,则继续对后续其他字符进行逐一比较。

实现

public class LongestCommonPrefix {

    public static void main(String[] args) {

        String[] strings = new String[]{"flower","flow","flight"};
        String result = longestCommonPrefix(strings);
        System.out.println(result);
    }

    //默认第一个字符是公共前缀,逐一的和后面的字符进行比较
    private static String longestCommonPrefix(String[] strs) {
        //获取第一个字符
        String first = strs[0];
        //循环比较
        int index = 1;
        while (index
image.png

你可能感兴趣的:(每日两道算法题 - 最大公共前缀(高频))