java 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""
时间: 2023-08-28 16:12:21 浏览: 84
以下是一个Java函数,用于查找字符串数组中的最长公共前缀。
```java
public static String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
}
if (strs.length == 1) {
return strs[0];
}
int minLength = Integer.MAX_VALUE;
for (String str : strs) {
minLength = Math.min(minLength, str.length());
}
int low = 0;
int high = minLength - 1;
while (low <= high) {
int mid = (low + high) / 2;
boolean allMatch = true;
char c = strs[0].charAt(mid);
for (int i = 1; i < strs.length; i++) {
if (strs[i].charAt(mid) != c) {
allMatch = false;
break;
}
}
if (allMatch) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return strs[0].substring(0, (low + high) / 2 + 1);
}
```
该算法的时间复杂度为O(NMlogM),其中N为字符串数组的长度,M为字符串数组中最短字符串的长度。
阅读全文