• Question Description
    14. Longest Common Prefix_i++
  • My Key
package LeetCode;
public class Test {

public static void main(String[] args) {
String[] str1 = {"flower","flow","flight"};
System.out.println(longestCommonPrefix(str1));

String[] str2 = {"dog","racecar","car"};
System.out.println(longestCommonPrefix(str2));

String[] str3 = {"acc","aaa","aaba"};
System.out.println("str3:"+longestCommonPrefix(str3));

String[] str4 = {"aa","a"};
System.out.println("str4:"+longestCommonPrefix(str4));
}

public static String longestCommonPrefix(String[] strs) {
if (strs.length == 0 || strs == null) {
return "";
} else if (strs.length == 1) {
return strs[0];
} else {
int minLen = strs[0].length();
String commonPrefix = strs[0].substring(0, minLen);
StringBuffer res = new StringBuffer();

for (int i = 1; i < strs.length; i++) {
if (res.length() != 0) {
res.delete(0, res.length());
}
minLen = Math.min(minLen, strs[i].length());

for (int j = 0; j < minLen; j++) {
if (commonPrefix.charAt(j) == strs[i].charAt(j)) {
res.append(commonPrefix.charAt(j));
continue;
} else {
minLen = j;
break;
}
}
if(res.length() == 0) {
break;
}
}
return res.toString();
}
}
}