LintCode-最长公共前缀

题目描述:

  给k个字符串,求出他们的最长公共前缀(LCP)

样例

  在 "ABCD" "ABEF" 和 "ACEF" 中,  LCP 为 "A"

  在 "ABCDEFG", "ABCEFG", "ABCEFA" 中, LCP 为 "ABC"

 

 1 public class Solution {
 2     /**
 3      * @param strs: A list of strings
 4      * @return: The longest common prefix
 5      */
 6     public String longestCommonPrefix(String[] strs) {
 7         // write your code here
 8        int k=1;
 9         if(strs.length==1)
10             return strs[0];
11         else if(strs.length==0){
12             return "";
13         }else{
14             while(true){
15                 for(int i=0;i<strs.length;i++){
16                     if(strs[i]==null){
17                         return null;
18                     }else if(k > strs[i].length()){
19                         return strs[i];
20                     }else if(!strs[i].substring(0, k).equals(strs[0].substring(0, k)))
21                         return strs[0].substring(0, k-1);
22                 }
23                 k++;
24             }
25         }
26     }
27 }

 

 

posted @ 2016-04-07 17:27  JosephDcc  阅读(222)  评论(0编辑  收藏  举报