给你一个大小为 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
}