【题目描述】
Write a function to find the longest common prefix string amongst an array of strings.
【题目大意】
写一个函数找出一个字串所数组中的最长的公共前缀。
【解题思路】
第一步先找出长度最小的字符串,然后将这个字符串与其它的字符串相比找出最短的最公共前缀。
【本题答案】
package blog;
/**
* @author yesr
* @create 2018-03-05 下午9:24
* @desc
**/
public class Test0305 {
public String longestCommonPrefix(String[] strs) {
if (strs == null) {
return null;
}
if (strs.length == 0) {
return "";
}
int min = Integer.MAX_VALUE; // 记录最短的字符串的长度
// 找短字符串的长度
for (String str : strs) {
if (str == null) {
return null;
}
if (min > str.length()) {
min = str.length();
}
}
int i; // 记录最长前缀的字符数
boolean flag;
for (i = 0; i < min; i++) {
flag = true;
for (int j = 1; j < strs.length; j++) {
if (strs[0].charAt(i) != strs[j].charAt(i)) {
flag = false;
break;
}
}
if (!flag) {
break;
}
}
// if (i == 0) {
// return null;
// }
return strs[0].substring(0, i);
}
}