最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
1
2
2
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
1
2
3
2
3
提示:
- 0 <= strs.length <= 200
- 0 <= strs[i].length <= 200
- strs[i] 仅由小写英文字母组成
解答:
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function(strs) { // 暴力拆解
if(!strs.length) return ""; // 如果为空数组,则直接返回空字符串
if(strs[0] === '') return ""; // 如果第一位为空串,也是直接返回空字符串
let result = strs[0].split(''); // 将result赋值到第一位的字符串并拆解为数组
for(let i=1;i<strs.length;i++) {
if(strs[i].length > 0) { // 如果strs中有空字符串马上返回空字符串
let len = Math.max(result.length, strs[i].length); // 比较result和当前字符串的长度,取长者
for(let j =0;j<len;j++) {
if(result[j] === strs[i][j]) {
continue;
}else {
result = result.slice(0, j); // 去除不重复的字符串
}
}
}else {
return "";
}
}
return result.join('');
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
在Github上编辑此页 (opens new window)
上次更新: 3/29/2021, 3:49:46 PM