leetCode每日一题14. 最长公共前缀(JavaScript)
难度简单
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
提示:
- 1 <= strs.length <= 200
- 0 <= strs[i].length <= 200
- strs[i] 仅由小写英文字母组成
题解
- 主要是字符串方法str.startWith()的应用
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function(strs) {
//将首项设为做公共最前长缀的基础
let tran=strs[0];
//遍历数组,从str[1]开始与tran进行比较
for(let i=1;i<strs.length;i++){
//如果str[i]的首项不是以tran的首字符开头,则跳出程序直接抛出空字符串。
if(!strs[i].startsWith(tran.charAt(0))){
return tran="";
}
//遍历tran,由后到前,如果str[i],不以tran开头,则将tran最后一位删掉,继续尝试;
//等满足条件后 此时tran就是前面比较项的最小的公共前缀子串,再与后面的str[i+1]等等作比较
for(let j=tran.length;j>=0;j--){
if(!strs[i].startsWith(tran)){
tran=tran.slice(0,j-1)
}
}
}
return tran
};
作者:zoexyf
链接:https://leetcode-cn.com/problems/longest-common-prefix/solution/14zui-chang-gong-gong-qian-zhui-zi-chuan-92gi/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。