题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
解答:
<script type="text/javascript">
var longestCommonPrefix = function(strs) {
if(strs.length === 0) return ''
if(strs.length === 1) return strs[0]
let str = ''
let first = strs[0]
for(let i = 0; i < first.length; i++) {
for(let j = 1; j < strs.length; j++) {
if(first[i] !== strs[j][i]) {
return str
}
}
str += first[i]
}
return str
}
console.log(longestCommonPrefix(['first', 'fixsg', 'fdsf']))
</script>
解析:
1,如果是空数组,返回空字符串,如果数组只有一项,则返回第一项。
2,取得数组第一项,嵌套遍历,拿第一项的每一个字符和后面各项的相对应位置进行比较,如果有不用则直接返回,如果相同则记录下来。