解题思路:
(1)求出字符串数组中的最短的字符串长度
(2)以该长度作为循环取得次数,取出每一次索引的对应字符,然后内循环是字符串数组的长度,比较字符串是否在该索引处字符与该字符相等。不存在不相等则为一个公共前缀字符,进行尾部添加。最短长度添加之后之后形成的字符串就是最长公共前缀字符串。
public class Solution {
public static String longestCommonPrefix(String[] strs) {
if(strs.length==0) {return "";}
if(strs.length==1) {return strs[0];}
int i=0;//数组里至少有两个字符串
int minLength=strs[0].length();
int strsLength=strs.length;
char c;
for(i=1;i<strsLength;i++) {//寻找最小长度的字符串
if(strs[i].length()<minLength) {
minLength=strs[i].length();
}
}
StringBuilder stringBuilder=new StringBuilder();
Boolean flag=true;
for(i=0;i<minLength;i++) {
c=strs[0].charAt(i);
for(String s: strs) {
if(s.charAt(i)!=c) {
flag=false;
break;
}
}
if(flag==false) {
break;
}else {
stringBuilder.append(c);
}
}
return stringBuilder.toString();
}
}