14. 最长公共前缀

题目:

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

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

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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix

分析:【待分析】

class Solution {
    public String longestCommonPrefix(String[] strs) {
        String str = "";
        if (strs.length == 0) {
            return str;
        }
        int index = 0;//无序区的最小数据数组下标
        for (int i = 0; i < strs.length; i++) {
            for(int j = 1;j < strs.length - i; j++){
                if(strs[j].length() < strs[index].length()){
                //在无序区中找到长度最短的字符串并保存其数组下标
                    index = j;
                }
            }
        }
        //将最短的字符串放到本次循环的首端
        String temp = strs[0];
        strs[0] = strs[index];
        strs[index] = temp;
        //保证strs[0]为数组中长度最短的字符串 
        if (strs[0] == "") {
            return str;
        }
        for (int i = 1; i <= strs[0].length(); i++) {
            str = strs[0].substring(0, i);
            boolean flag = false;
            for (int j = 0; j < strs.length; j++) {
                String strj = strs[j].substring(0, i);
                if (! str.equals(strj) ) {
                    flag = false;
                    break;
                } else {
                    flag = true;
                }
            }
            if (!flag) {
                str = strs[0].substring(0, i-1);
                break;
            }
        }
        return str;
    }
}
View Code
原文地址:https://www.cnblogs.com/doona-jazen/p/11430728.html