public static String longestCommonPrefix(String[] strs) {
// 1. 判断字符串是否为空
if (strs == null || strs.length == 0) {
return "";
}
// 2. 设定初始值:首字符串和首字符串长度
String maxPrefix = strs[0];
int firstLen = maxPrefix.length();
// 3. 遍历整个字符串;它的时间复杂度O(n)
for (int i = 1; i < strs.length; i++) {
// 4. 对首字符串进行遍历,长度为最大公共前缀(会随着计算而减小)
for (int j = 0; j < firstLen; j++) {
maxPrefix = strs[0].substring(0, j + 1);
if (!strs[i].startsWith(maxPrefix)) {
maxPrefix = maxPrefix.substring(0, j);
firstLen = maxPrefix.length();
break;
}
}
// 5. 判断最大公共前缀的长度,如果为0,则return
if (firstLen == 0) {
return maxPrefix;
}
}
return maxPrefix;
}
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串“”。
最新推荐文章于 2024-08-22 12:49:54 发布