LeetCode算法--求字符串最长公共前缀

题目:给定一个数组,其元素是由如果干个字符串组成,那么请找到他们从开始起的最长公共元素,如果没有返回空。例如[‘flower’, ‘flow’, ‘flor’], 则返回flo。
解析:看到这个题,不知道你是不是就想到了十大基础排序中的选择排序的思想,我们只需要通过选择排序的思想比较第一轮即可。比如拿出数组中的第一个元素,然后与后面的相比即可得出结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var longestCommonPrefix = (arr) => {
if (!arr) return ''
if (arr.length <= 1) return arr[0]
let pod = arr[0]
for (var i = 0; i < pod.length; i++) {
let j = 0
let isTrue = true
while (j < arr.length) {
if (arr[j][i] !== pod[i]) {
isTrue = false
break
}
j++
}
if (!isTrue) break
}
return pod.substring(0, i)
}

longestCommonPrefix(["flower","flow","flight"])
// "fl"

注:思想很简单,当然这也是建立在都是LeeCode上简单题的基础上,这里有个坑切记,for循环中变量i不能用let声明,要用var生明。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2022 Lee
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信