给你一个大小为 n 的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。
数据范围:
,
进阶:空间复杂度
,时间复杂度
/** * * @param strs string字符串一维数组 * @return string字符串 */ function longestCommonPrefix( strs ) { if(strs.length==0) return ""; let ans=strs[0]; for(let i=1;i<strs.length;i++){ if(strs[i].length<ans.length){ ans=ans.slice(0,strs[i].length) } for(let j=0;j<strs[i].length;j++){ if(strs[i][j]!=ans[j]){ ans=ans.slice(0,j) break } } } return ans } module.exports = { longestCommonPrefix : longestCommonPrefix };
/** * * @param strs string字符串一维数组 * @return string字符串 */ function longestCommonPrefix( strs ) { // write code here if (strs.length === 0) return '' if (strs.length === 1) return strs[0] strs.sort() const first = strs[0],last=strs[strs.length -1] let str = '' for (let i = 0; i < first.length; i++) { if (first[i] === last[i]) { str += first[i] continue } break } return str } module.exports = { longestCommonPrefix : longestCommonPrefix };
/** * * @param strs string字符串一维数组 * @return string字符串 */ function longestCommonPrefix( strs ) { // write code here if(strs.length===0){ return ""; } let ans=strs[0]; for(let i=1;i<strs.length;i++){ if(ans.length>strs[i].length){ ans=strs[i]; } } for(let i=0;i<strs.length;i++){ if(strs[i].indexOf(ans)===0){ continue; }else{ ans=ans.substring(0,ans.length-1); i--; } } return ans; } module.exports = { longestCommonPrefix : longestCommonPrefix };
function find(s1,s2){ var n=s1.length for(var i=0;i<n;i++){ if(s1[i]!==s2[i]){ break } } return s1.slice(0,i) } function longestCommonPrefix( strs ) { if(strs.length===0){ return "" } return strs.reduce((a,b)=>{ return find(a,b) }) }2.纵向扫描
function longestCommonPrefix( strs ) { if(strs.length===0){ return "" } strs.sort((a,b)=>a.length-b.length) var n=strs[0].length,res for(var i=0;i<n;i++){ res=strs.every((e,index)=>{ return e[i]===strs[0][i] }) if(res===false){ break } } return strs[0].slice(0,i) }
/** * * @param strs string字符串一维数组 * @return string字符串 */ //纯纯的双重循环js写法 function longestCommonPrefix( strs ) { var a =""; if(strs.length == 1) { return strs[0]; } if(strs.length ==0){ return a; } for (var j = 0; j < strs[0].length; j++) { for (var i = 0; i < strs.length; i++) { if (strs[i][j] != strs[0][j]) { return a; } } a += strs[0][j]; } return a; } module.exports = { longestCommonPrefix : longestCommonPrefix };
if(strs.length==0)return "" // write code here let temp=strs[0] while(temp.length>0){ //如果自减到长度为零还不能执行,没救了,有个锤子公共前缀 if(strs.every(item=>{ return item.indexOf(temp)==0 //满足所有的才会返回true })){ return temp }else{ temp=temp.slice(0,temp.length-1) } } return "" //没有,回家吃饭了
function longestCommonPrefix( strs ) { // write code here if (strs.length < 1) return ''; if (strs.length === 1) return strs[0]; strs.sort(); const first = strs[0], end = strs[strs.length - 1]; let res = ''; for (let i = 0; i < first.length; i++) { if (first[i] !== end[i]) break; res += first[i]; } return res; }
function longestCommonPrefix( strs ) { // write code here let str = strs[0]; if(strs.length==0 || str.length==0) return '' let item = '' for(let i = 0; i < str.length; i++) { item += str[i]; if(!strs.every(el => el.includes(item))) { return item.substr(0,item.length-1); } } return str } module.exports = { longestCommonPrefix : longestCommonPrefix };
function longestCommonPrefix( strs ) { // write code here if(strs === null || strs.length === 0) return '' var str = strs[0] for(var i =1;i<strs.length;i++){ for(var j = 0;j<str.length&&strs[i].length;j++){ if(str[j]!= strs[i][j]){ break } } str = str.substring(0,j) if(str === '') return '' } return str }