暴力解法, 先找到所有字符里面最小长度(最长的前缀肯定小于等于这个长度).之后循环, 每个以第零个为参照逐位扫描, 如果不相同则返回当前记录的前缀
public class Solution { public String longestCommonPrefix(String[] strs) { if (strs.length == 0 || strs == null) { return ""; } int min = Integer.MAX_VALUE; StringBuilder res = new StringBuilder(); for (int i = 0; i < strs.length; i++) { min = Math.min(min, strs[i].length()); } for (int i = 0; i < min; i++) { for (int j = 0; j < strs.length; j++) { if (strs[j].charAt(i) != strs[0].charAt(i)) { return res.toString(); } } res.append(strs[0].charAt(i)); } return res.toString(); } }
没有评论:
发表评论