原题链接
思路:先遍历一遍数组,找出所有字符串的最小长度,用 minLen 表示,然后以第一个字符串为出发点,遍历第一个字符串 0—minLen-1范围内的字符,将遍历到的字符与剩下的字符串的对应下标字符相比较
public String longestCommonPrefix(String[] strs) {
if(strs == null || strs.length == 0) return "";
int minLen = Integer.MAX_VALUE;
for(int i = 0;i < strs.length;i++) {
if(minLen > strs[i].length()) minLen = strs[i].length();
}
int index = 0;//截取的位置
for(int i = 0;i < minLen;i++) {
char c = strs[0].charAt(i);
for(int j = 1;j < strs.length;j++) {
if(strs[j].charAt(i) != c) return strs[0].substring(0, index);
}
index++;
}
return strs[0].substring(0, index);
}