JavaScript:leetcode_14. 最长公共前缀

121 阅读1分钟

题目描述

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

 

示例 1:

输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2:

输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。  

提示:

1 <= strs.length <= 200; 0 <= strs[i].length <= 200; strs[i] 仅由小写英文字母组成。

解题思路

  1. 数组的sort排序方法,当数组是字符串的时候,排序是按照那个码来排的,比如说数组["reflower","abc","a","b","z"],他排序的结果是[ 'a', 'abc', 'b', 'reflower', 'z' ],是按照第一个字符的大小来排,当第一个相同的的时候,依次往后比较 ,直到比较出大小。
  2. 比较第一个和最后一个,返回相同的串即可。

代码实现

var longestCommonPrefix = function (strs) {
    if(strs.length === 1) return strs[0];
    strs.sort();
    let len = strs[0].length;
    for(let i = 0;i < len;i++){
        if(strs[strs.length - 1].charAt(i) !== strs[0].charAt(i))break;
    }
    if(i < 1)return "";
    return strs[0].substring(0,i);
}