比较慢的一个解答
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs.length == 0) return "";
if (strs.length == 1) return strs[0];
for (String str : strs) {
if (str == "") return "";
}
// 几种特殊情况直接返回
StringBuilder cp = new StringBuilder();
String temp = strs[0];
Boolean flag = true;
for (String str:strs) {
if (!str.equals(temp)){
flag = false;
}
}
if (flag) return temp;
// 字符串数组中所有元素都相同时也直接返回
Boolean flag2 = true;
// 初始化一个标志用来判断是首个元素字符用完还是匹配到不同字符的情况
outer:for (int i = 0; i < temp.length(); i++) {
cp.append(temp.charAt(i));
for (int j = 1; j < strs.length; j++) {
if (!strs[j].startsWith(cp.toString())) {
flag2 = false;
break outer;
}
}
}
if (flag2) return cp.toString();
// 首个元素字符用完的情况不需要删去最后一个字符
return cp.deleteCharAt(cp.length() - 1).toString();
}
}