数据结构算法题/最长公共前缀

题目:

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

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

 示例 1:
 输入: ["flower","flow","flight"]
 输出: "fl"
 
 示例 2:
 输入: ["dog","racecar","car"]
 输出: ""
 解释: 输入不存在公共前缀。
 

分析:

遍历,遇到字符串不同,或者字符串超出遍历的长度就返回。

public class LongestCommonPrefix {
    public String longestCommonPrefixFun(String[] strArr) {
        int index = 0;
        if (strArr.length == 0) {
            return "";
        }
        int i;
        for (i = 0; i < strArr[0].length(); i++) {
            char current = strArr[0].charAt(i);
            for (String str : strArr) {
                if (str.length() == i || current != str.charAt(i)) {
                    //str.length() == i表示字符串数组strArr中当前的元素str长度有限,到达其结尾了
                    //current != str.charAt(i) 表示strArr[0]中当前元素也就是第i个和str的当前元素str第i个不相等
                    return str.substring(0, i);
                }
            }
            i++;
        }

        return strArr[0].substring(0, i);
    }

    public static void main(String[] args) {
        LongestCommonPrefix longestCommonPrefix = new LongestCommonPrefix();
        String[] strArr = {"fq12", "fq1", "fq2"};
        String result = longestCommonPrefix.longestCommonPrefixFun(strArr);
        System.out.println(result);
    }
}
https://www.jianshu.com/p/e48dd179f760

猜你喜欢

转载自blog.csdn.net/fkyyly/article/details/83584171