14. Longest Common Prefix

本文介绍了一种用于寻找字符串数组中最长公共前缀的方法。通过定义一个lcp辅助函数来逐个字符比较两个字符串,直到找到不匹配的字符为止。此方法适用于任何字符串数组,只要数组中存在至少一个字符串。

14. Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings.

 1 /**
 2  * @param {string[]} strs
 3  * @return {string}
 4  */
 5 var longestCommonPrefix = function(strs) {
 6     
 7     //每次都拿一个最长公共前序列去比较得了  比如string[] = ["aa","ab","ap"]
 8     // aa 和 ab 比较是 a ,  然后 a 和 ap 去比较  还是 a
 9     
10     function lcp(a,b){
11          
12         var min_len = Math.min(a.length,b.length);
13         var count = 0;
14         for(var i = 0; i< min_len;i++){
15             if(a[i] == b[i]){
16                 count++;
17             }else{
18                 break;
19             }
20         }
21         
22         return a.substr(0,count);       
23     }
24     
25     var slen = strs.length;
26     
27     if(slen == 0){
28         
29         return "";
30     }
31     
32     if(slen == 1){
33         return strs[0];
34     }
35     
36     var pattern = strs[0]
37     
38     for(var i = 1; i<slen;i++){
39        pattern =  lcp(pattern,strs[i]);
40     }
41     
42     return pattern;
43 };

 

转载于:https://www.cnblogs.com/huenchao/p/7650851.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值