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

leetcode Longest Common Prefix 14

时间:2015-05-25 14:45:07      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:leetcode   longest common prefi   java   

Longest Common Prefix Total Accepted: 47436 Total Submissions: 182575


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


Hide Tages String


翻译:编写一个函数去查找在字符串数组中的最长公共前缀的字符



尝试一(失败),代码如下:


	public static String longestCommonPrefix1(String[] strs)
	{
		//temp为中间量
		String temp=strs[0];
		if(strs==null||strs.length==0)
		{
			return "";	
		}
		
		for (int i = 0; i < strs.length; i++)
		{
			for (int j = i; j < strs.length; j++)
			{
				if(strs[i].charAt(0)!=strs[j].charAt(0))
				{
					return "";
				}

			}
		}
		for (int i = 1; i < strs.length; i++)
		{
			
			int len=temp.length()<strs[i].length()?strs[0].length():strs[i].length();
			int j;
			for ( j = 0; j<len; j++)
			{
				char first=temp.charAt(j);
				char current=strs[i].charAt(j);
				if(first!=current)
				{
					break;
				}
			}
			temp=strs[0].substring(0,j);
			
			
		}
		return temp;
	}


尝试二(成功),代码如下:

	public static String longestCommonPrefix(String[] strs)
	{
        int len = strs.length;
        if(len == 0) return "";
        if(len == 1) return strs[0];
        int i = 1;
        String temp = strs[0];
        while(i < len)
        {
            int minLen = Math.min(temp.length(), strs[i].length());
            if(minLen == 0) return "";
            int j = 0;
            while(j < minLen) 
            {
                if(temp.charAt(j) == strs[i].charAt(j)) 
                {
                    j++;
                }
                else 
                {
                    if(j == 0) temp = "";
                    break;
                }
            }
            temp = temp.substring(0,j);
            i++;
        }
        return temp;
	}




心得:尝试一与尝试二的解题思想是一样,但是尝试一未能避开一些一般性的测试输入,如:{a,b,c} ,这个我使用了两个for循环进行遍历进行排除,太麻烦。 {“”,“”,“”}三个空字符串,没能排除,于是使用尝试二的方法,成功避开一些意外输入。


解题思想:使用中间变量temp将出现的公共String进行sub,即抽取出来。然后依次往下进行循环遍历即可。

leetcode Longest Common Prefix 14

标签:leetcode   longest common prefi   java   

原文地址:http://blog.csdn.net/zzc8265020/article/details/45967947

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