leetcode------Longest Common Prefix

这一段一直忙考试,一直没有刷题,今天上来刷三道题感觉生疏起来了。。罪过啊。刷到今天了。。还是没有写算法的感觉,还是写代码太少了。java的用法又忘记了很多。java上手后就要开始写python了,反正现在就是没有写代码的感觉。

题目:

Longest Common Prefix
通过率: 26.5%
难度: 简单

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

 

这道题目我拿到手后没有看明白,我以为是让求这么多字符串的LCS最长公共子序列,但是又感觉LCS作为简单难度的题目是不可能的啊。我翻译了一下,发现是求最长公共前缀,这道题我的思路就是一个一个去比较,迭代的去找最长公共前缀,从第一个到最后一个,需要注意的是边界问题,把第0个位置的字符串当做默认的最长前缀然后与后面的进行比较然后重新给 最长前缀赋值,这样一趟下来刚好正确,第二个要注意的就是字符串的求长度和字符串数组的求长度函数 length和length()的用法,下面直接看代码:

 1 public class Solution {
 2     public String longestCommonPrefix(String[] strs) {
 3         int midlen=0;
 4         int j=0;
 5     if(strs.length==0)return "";
 6     String tmp=strs[0];
 7     for(int i=1;i<strs.length;i++){
 8         if(tmp.length()==0||strs[i].length()==0)
 9         return "";
10 
11             midlen= tmp.length() < strs[i].length() ? tmp.length() : strs[i].length();
12 
13         for(j=0;j<midlen;j++){
14             if(tmp.charAt(j)!=strs[i].charAt(j))
15                 break;
16      
17         }
18         tmp=tmp.substring(0, j);
19         midlen=j;
20     }
21     
22     return tmp;
23     }
24 
25 }

 

posted @ 2015-01-13 11:54  pku_smile  阅读(168)  评论(0编辑  收藏  举报