题目描述:

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
**示例 1:

  1. 输入: ["flower","flow","flight"]
  2. 输出: "fl"

示例 2:

  1. 输入: ["dog","racecar","car"]
  2. 输出: ""
  3. 解释: 输入不存在公共前缀。

说明:
所有输入只包含小写字母 a-z

算法实现:

JavaScript

  1. /**
  2. * @param {string[]} strs
  3. * @return {string}
  4. */
  5. var longestCommonPrefix = function(strs) {
  6. var pre = ""
  7. if(!strs.length) return pre
  8. for(var j = 0; j < strs[0].length; j++ ) {
  9. for(var i = 1; i < strs.length; i++ ) {
  10. if(strs[i][j] != strs[0][j]) return pre
  11. }
  12. pre += strs[0][j]
  13. }
  14. return pre
  15. };

思路:

对数组中的每个字符串的每位进行对比是否相同,相同则逐位加上,最终得到最大公共前缀。

总结:

运用了与往常不同的循环方式,内循环嵌套外循环,进而解决字符串位次相加问题,注意需要添加数组中只有一个字符串时直接返回“”的情况。