给你一个大小为 n 的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。
数据范围:
,
进阶:空间复杂度
,时间复杂度
/**
*
* @param strs string字符串一维数组
* @return string字符串
*/
function longestCommonPrefix( strs ) {
// write code here
if (!strs || strs.length === 0) return ''
let colLength = strs[0].length
let commonStr = strs[0]
for(let col=0; col<colLength;col++) {
let char = commonStr[col]
for(let row=1; row<strs.length; row++) {
if (strs[row].length == col || char != strs[row][col] ) {
// 字符串长度 = 列下标,字符串短,结束遍历
return commonStr.slice(0, col)
}
}
}
return commonStr
}
module.exports = {
longestCommonPrefix : longestCommonPrefix
}; function longestCommonPrefix( strs ) {
if(strs.length === 1) return strs[0]
if(!strs.length || !strs[0].length) return ''
let res = ''
let str0 = strs[0]
for(let i = 0;i<str0.length;i++){
for(let j =1;j<strs.length;j++){
if(!strs[j].includes(res + str0.charAt(i))){
return res
}
}
res = res + str0.charAt(i)
}
return res
} function longestCommonPrefix(strs) {
// write code here
if (!strs || strs.length == 0) return "";
let firstStr = strs[0];
const firstLen = firstStr.length;
for (let i = 0; i < firstLen; i++) {
let char = firstStr[i];
for (let j = 1; j < strs.length; j++) {
if (i == strs[j].length || char != strs[j][i]) {
return firstStr.substring(0, i);
}
}
}
return firstStr;
} function longestCommonPrefix(strs) {
strs = strs.sort()
var str1 = strs[0]
var str2 = strs[strs.length - 1]
var index = 0
var str = ""
if (strs.length == 0) {
return str
} else if (str2.startsWith(str1)) {
return str1
}
while (true) {
if (str1[index] === str2[index]) {
str += str1[index]
index++
}else {
break
}
}
return str
}