最长公共前缀

LeetCode每日一题,14.最长公共前缀

先看题目描述

算法和思路

思路就是遍历每个字符串,求出这个字符串与下个字符串的公共前缀长度,若小于当前的最长公共前缀长度,就将其更新,就这样一直更新,最后根据最长公共前缀长度返回公共前缀,要注意考虑字符串长度为 0 的情况

算法源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs.length == 0) return "";
if (strs.length == 1) return strs[0];
int max = 10000;
for (int i = 0; i < strs.length - 1; i++) {
String a = strs[i];
String b = strs[i + 1];
int len = Math.min(a.length(), b.length());
if (len == 0) {
max = 0;
break;
}
for (int j = 0; j < len; j++) {
if (a.charAt(j) != b.charAt(j)) {
max = Math.min(max, j);
break;
}
if (j == len - 1) max = Math.min(max, len);
}
}
return strs[0].substring(0, max);
}
}