解题思路:由于前缀最大的长度不能超过字符串数组中最短的字符串的长度,所以先记录最短字符串的长度。然后以第一个字符串为模板逐个比较剩余的字符串,得出最长前缀的长度。使用字符串截取方法把前缀截取出来并返回。
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs.length == 0) {
return "";
}
int max = strs[0].length();
for (int i = 0; i < strs.length; i++) {
if (max > strs[i].length()) {
max = strs[i].length();
}
}
if (max == 0) {
return "";
}
for (int i = 1; i < strs.length; i++) {
for (int j = 0; j < strs[i].length(); j++) {
if (max > j) {
char chi = strs[0].charAt(j);
char chj = strs[i].charAt(j);
if (chi != chj) {
if (max > j) {
max = j;
}
}
}
}
}
if (max == 0) {
return "";
} else {
return strs[0].substring(0, max);
}
}
}