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