题目描述
直接思维
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs==null||strs.length<1){
return "";
}
if(strs.length==1){
return strs[0];
}
int start = 0;
while(start<strs[0].length()) {
for (int i = 1; i < strs.length; i++) {
if(start>=strs[i].length())/*aa,a的情况*/
return strs[0].substring(0, start);
if (strs[i].charAt(start) != strs[0].charAt(start))
return strs[0].substring(0, start);
}
start++;
}
return strs[0].substring(0,start);
}
}
复杂度分析:
时间复杂度:O(mn),其中 m 是字符串数组中的字符串的平均长度,n 是字符串的数量。最坏情况下,字符串数组中的每个字符串的每个字符都会被比较一次。
空间复杂度:O(1)。使用的额外空间复杂度为常数。
诡异的提交结果:
注意事项:
- 1.边界问题
- 2.数组越界问题