题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串。
输入:strs = ["flower","flow","flight"]
输出:"fl"
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
分析
- 首先找出strs数组中最短的一项
- 以最短的一项为基准,循环判断剩余其他项的对应位置字符是否与基准的相同。
- 如果有任意一个不同了,直接返回结果;如果全部项对应位置都与之相同,则需要给结果添加当前位置的字符。
其中,第一步可省略,直接拿数组第一项作为基准也可以。
代码实现
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function(strs) {
var min_index=0
var res = ''
// 找出最短的一个项
for(i=0;i<strs.length;i++){
if(strs[i].length < strs[min_index].length){
min_index=i
}
}
// 循环判断前缀
for(i=0;i<strs[min_index].length;i++){
for(j=0;j<strs.length;j++){
if(j !== min_index){
if(strs[j][i] !== strs[min_index][i]){
return res
}
}
}
res+=strs[min_index][i]
}
return res
};