P163 字符串的最长公共前缀
算法 16 阅读
信号摘要
难度:Easy · 时长:04:45 · leetcode 14 · lintcode 78
未对外公开播放权限
点击查看说明
描述
这个题目说的是,给你一个字符串数组,你要找到这些字符串的最长公共前缀。如果它们没有公共前缀,则返回空字符串。
比如说,给你的字符串数组是:["car", "cat", "care"]
这三个字符串的最长公共前缀是 ca,可以看到所有的字符串都包含 ca 前缀,因此我们要返回 ca。
再比如说给你的字符串数组是:
["car", "bus"]
它们不包含相同的前缀,因此返回空字符串 ""。
代码
public class AlgoCasts {
// Time: O(k*n), Space: O(1)
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) return "";
String first = strs[0];
for (int i = 0; i < first.length(); ++i) {
char c = first.charAt(i);
for (int j = 1; j < strs.length; ++j)
if (i >= strs[j].length() || strs[j].charAt(i) != c)
return first.substring(0, i);
}
return first;
}
}