题目
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。
示例
输入: [“flower”,“flow”,“flight”] 输出: “fl”
输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。
这是一道简单题,没什么说的
class Solution
{
public String
longestCommonPrefix(String
[] str
) {
if(str
==null
||str
.length
==0) return "";
String result
= str
[0];
for (String s
: str
) {
int j
= 0;
for (; j
< result
.length() && j
< s
.length(); j
++) {
if (result
.charAt(j
) != s
.charAt(j
)) {
break;
}
}
result
= result
.substring(0, j
);
}
return result
;
}
}
举一反三
思考,如果不是公共前缀了,而是子集,中间的某几个字符相同,如何处理? 这就涉及到动态规划的LCS最长公共子序列,中级了,后面我学会了再记录 。