题目

https://leetcode-cn.com/problems/longest-common-prefix/

方法

  1. var longestCommonPrefix = function (strs) {
  2. //长度为0返回空
  3. if (strs.length == 0) return ''
  4. //为1直接返回第一个
  5. if (strs.length == 1) return strs[0]
  6. //题目要求,字符串最长200个字符,生成一个长度为200的数组
  7. let min = new Array(200)
  8. //找出最短的字符串
  9. for (let i = 0; i < strs.length; i++) {
  10. if (strs[i].length < min.length) {
  11. min = strs[i]
  12. }
  13. }
  14. let conditions = false
  15. let ret = ''
  16. min = min.length
  17. while (!conditions && min > 0) {
  18. //用while把数组里面的长度不断减一
  19. for (let i = 0; i < strs.length; i++) {
  20. strs[i] = strs[i].slice(0, min)
  21. }
  22. //然后对比是否一样
  23. conditions = strs.every((el) => el === strs[0])
  24. if (conditions) {
  25. //一样的话,返回公共前缀
  26. ret = strs[0]
  27. } else {
  28. //否则长度减1,继续对比
  29. min -= 1
  30. }
  31. }
  32. return ret
  33. };