最长公共前缀
题目
给k个字符串,求出他们的最长公共前缀(LCP)
样例
在 “ABCD” “ABEF” 和 “ACEF” 中, LCP 为 “A”
在 “ABCDEFG”, “ABCEFG”, “ABCEFA” 中, LCP 为 “ABC”题解
本题可采用逐个字符串进行比对或是按字符进行全数组遍历比对的方法。
public class Solution {
/**
* @param strs: A list of strings
* @return: The longest common prefix
*/
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0)
{
return "";
}
String prefix = strs[0];
for(int i = 1; i < strs.length; i++)
{
int j = 0;
while(j < strs[i].length() && j < prefix.length() && strs[i].charAt(j) == prefix.charAt(j))
{
j++;
}
if( j == 0)
{
return "";
}
prefix = prefix.substring(0, j);
}
return prefix;
}
}
Last Update 2016.10.5
本文介绍了一种寻找多个字符串中最长公共前缀的有效算法。通过逐个比较字符,该算法可以处理任意数量的输入字符串,并返回它们共有的最长前缀。
698

被折叠的 条评论
为什么被折叠?



