编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
方法: 水平扫描
初始默认最长公共前缀为字符串数组的第一个元素subStr = strs[0],逐一遍历数组,利用字符串indexOf() 方法匹配每个元素。
var longestCommonPrefix = function(strs) {
// 判断数组是否为空
if (strs.length === 0) return ''
// 获取字符串数组第一个元素
let subStr = strs[0]
// 遍历数组
for (let i = 0; i < strs.length; i++) {
const itemStr = strs[i]
// 判断是否能在字符串数组元素中匹配到subStr,直到完成匹配,跳出while循环
while (itemStr.indexOf(subStr) !== 0) {
// 匹配不到,将去掉subStr字符串末尾元素
subStr = subStr.substring(0, subStr.length - 1)
}
// 匹配到的subStr如果为空,则跳出for循环
if (subStr === '') return ''
}
return subStr
};
longestCommonPrefix(["flower","flow","flight"])