您的位置:首页 > 其它

14. Longest Common Prefix

2016-04-10 02:42 232 查看
Write a function to find the longest common prefix string amongst an array of strings.

public class Solution {
public String longestCommonPrefix(String[] strs) {
int len = strs.length;
if(len == 0)
return "";
if(len == 1)
return strs[0];
int minlen = 0x7fffffff;//0x7fffffff long int最大值
for(int i = 0; i < len; i++)
minlen = Math.min(minlen, strs[i].length());
for(int j = 0; j < minlen; j++)
for(int i =0; i < len; i++)
if (strs[0].charAt(j) != strs[i].charAt(j))
return strs[0].substring(0,j);
return strs[0].substring(0,minlen);
}
}
//该算法打败了68%左右的人,利用字符串横向比较,来寻找最小的前缀。


public class Solution {
public String longestCommonPrefix(String[] strs) {
int n=strs.length;
if(n==0) return "";
StringBuilder st=new StringBuilder(strs[0]);
for(int i=1;i<n;i++){
while(!strs[i].startsWith(st.toString())) st.deleteCharAt(st.length()-1);//跟第一个字符串比较,不一样则删最后一位。
}
return st.toString();
}
}
//该算法击败了88%左右的人,个人认为验证的数据较多时,算法没有问题,但是验证的数据比较少且比较极端,可能会出错,不知道我想的对不对,反正有疑惑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: