14.最长公共前缀
1.题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
2.解题过程
根据字符串字典序规则,我们可以看出,排序后的首个字符串和末尾字符串差异最大。当前需要求得最长公共前缀,只需要求出头尾两个字符串的公共前缀即可
class Solution {
public String longestCommonPrefix(String[] strs) {
Arrays.sort(strs);
String first = strs[0];
String last = strs[strs.length-1];
int offset = 0;
while (offset < first.length()) {
if (first.charAt(offset) != last.charAt(offset)) {
break;
}
offset++;
}
return first.substring(0, offset);
}
}