14. Longest Common Prefix【leetcode】

14. Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
寻找一个数组中最长的公共前缀
例如["baaa","caaabbb","aaaa"]输出“aaa”
结题思路:
  1. 判断非空的情况在进行计算
  2. 取第一个字符串最为标杆进行对比,因为最终结果一定在第一位中
  3. 用第一个串进行逐个对比出最长的串
 
public class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs==null || strs.length==0)
            return "";
         String pr= strs[0];

        for(int i =1;i<strs.length;i++){
            //用j计算最长串的长度
            int j=0;
           
            while(j<pr.length()&&j<strs[i].length()&&pr.charAt(j)==strs[i].charAt(j)){
                j++;
            }
            if(j==0){
                return "";
            }
            pr =pr.substring(0,j);
        }
        
        return pr;
    }
}

注意:看到网上有帖子说进行排序,然后对比第一个和最后一个的公共序列,这样是不对的,因为如果中间的串没有公共序列时,返回结果错误

 

posted @ 2017-08-08 21:35  这个手杀不太0  阅读(114)  评论(0编辑  收藏  举报