借鉴了题解并进行了一点小优化
public String longestCommonPrefix (String[] strs) { // write code here if(strs==null || strs.length==0) return ""; String cur=strs[0]; //将第一个字符串当作当前最长的公共前缀 //循环遍历 for(String str:strs){ cur=Prefix(cur,str); if(cur=="") return ""; //如果遍历到公共前缀为空字符串,就直接返回 } return cur; } //进行字符串之间的判断,相同进1,不相同截止至当前下标的字符串 public String Prefix(String str1,String str2){ int length=Math.min(str1.length(),str2.length()); int index=0; while(index<length &&str1.charAt(index)==str2.charAt(index)){ index++; } return str1.substring(0,index); }