public class Solution { public String longestCommonPrefix(String[] strs) { //求公共子序列,公共子序列必须是str[0]的子串,因此本题是将每一个字符串按位和第一个字符串的每一位进行比较 //如果发现不相匹配,则截取子串 //时间复杂度为O(m*n)m为最终求的公共子串的长度,n为字符串数组的长度 if(strs==null||strs.length<1) return ""; for(int i=0;i<strs[0].length();i++){ for(int j=1;j<strs.length;j++){ if(strs[j].length()<=i||strs[j].charAt(i)!=strs[0].charAt(i)){//注意此处判断,先确定子串的长度是否>i return strs[0].substring(0,i); } } } return strs[0]; } }