leetcode 14 Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
解题思路:
前缀最大公共子串
得到字符串中最短的长度n,比对子串中前n个字母,相同则count++,比对count和n的关系,并将小的存入n,最后输出前n个字母。
注意:要考虑特殊情况,字符串数组为空时,以及字符串无公共子串时的情况
public String longestCommonPrefix(String[] strs) {
if(strs.length==0) return "";
int number = strs.length;
int n = strs[0].length();
for(int i = 1;i<number;i++){
int tmp = strs[i].length();
if(tmp<n) n = tmp;
}
for(int i = 0;i<number-1;i++){
int count = 0;
while(count<n&&strs[i].charAt(count)==strs[i+1].charAt(count))
count++;
n = n>count?count:n;
}
if(n==0) return "";
else return strs[0].substring(0, n);
}
改善思路待续…