题目:
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 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; } }