码迷,mamicode.com
首页 > 其他好文 > 详细

【LeetCode】Longest Common Prefix

时间:2017-11-13 19:53:57      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:new   div   pre   数组   字符   元素   取出   nbsp   tco   

题目: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

标签:new   div   pre   数组   字符   元素   取出   nbsp   tco   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!