首页 > 其他 > 详细

【LeetCode】Longest Common Prefix

时间:2017-11-13 19:33:52      阅读:218      评论:0      收藏:0      [点我收藏+]

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

 

这题的意思是,求字符串数组中的所有字符串的公共头。

解题思路:由于要求所有字符串的公共头,和求几个整数的公约数一样。我们先将字符串数组中的相邻元素进行比较,取出相同的部分,放入一个TreeMap中,其中TreeMap的key为相同部分字符串的长度,值为相同部分的字符串。最后取出最小的key即可。

class Solution {
    public String longestCommonPrefix(String[] strs) {
         int len=strs.length;
        if(len==0)
            return "";
        if(len==1)
            return strs[0];
        TreeMap<Integer,String> topMap=new TreeMap<Integer,String>();
        for(int i=1;i<len;i++)
        {
            String str1=strs[i-1];
            String str2=strs[i];
            int num=0;
            if(str1.length()>str2.length())
            {
                 num=str2.length();
            }
            else
            {
                 num=str1.length();
            }
            String top="";  //两个字符串相同的部分
            for(int j=0;j<num;j++)
            {
                if(str1.charAt(j)==str2.charAt(j))
                {
                    top+=str1.charAt(j);
                }
                else
                {
                    break;
                }
            }
            topMap.put(top.length(), top);//TreeMap如果不进行特殊处理的话,默认升序排列
            
        }
        int key=topMap.firstKey();  
        return topMap.get(key);
    }
}

 

【LeetCode】Longest Common Prefix

原文:http://www.cnblogs.com/contixue/p/7827417.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!