题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例如下:
所给提示如下:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
仅由小写英文字母组成
解题
根据题,需要依次遍历数组中的字符串,将其挨个比较,找出最长公共前缀。选择数组的第一个字符串作为基准,在后面的各个字符串将与基准字符串有相同前缀的字符串截取出来。
利用字符串的 substring 方法截取基准字符串(直至长度为0),依次在后面的字符串中利用 indexOf方法获取下标索引,为0则表示有相同部分存在,依次遍历,返回最后截取的字符串。
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function(strs) {
if (strs.length === 0) return "";
let prefix = strs[0];
for (let i = 1; i < strs.length; i++) {
while (strs[i].indexOf(prefix) !== 0) {
prefix = prefix.substring(0, prefix.length - 1);
if (prefix === "") return "";
}
}
return prefix;
};