本题代码:
/*
作者:zouxuecheng
日期:2024-1-25
思路:选定字符串类型的数组的第一个数组元素作为哨兵,挨个检查其余元素,求得各自匹配的前缀长度,保留最小值,最终得到的即为最长公共前缀的长度,直接从哨兵处截取出来就是答案,当然若长度为0,则返回空字符串。
*/
class Solution {
public String longestCommonPrefix(String[] strs) {
int minimumMatchingLength = strs[0].length();
for(int i = 1; i < strs.length; i++){
int j = 0;
for(; j < strs[0].length() && j < strs[i].length(); j++){
if(strs[0].charAt(j) != strs[i].charAt(j)){
break;
}
}
if(j < minimumMatchingLength)
minimumMatchingLength = j;
if(minimumMatchingLength == 0)
break;
}
return strs[0].substring(0, minimumMatchingLength);
}
}
本题复杂度:
时间复杂度T(n)=O(mn)
空间复杂度S(n)=O(1)