Write a function to find the longest common prefix string amongst an array of strings.
写一个函数找出一个字串所数组中的最长的公共前缀。
第一步先找出长度最小的字符串,然后将这个字符串与其它的字符串相比找出最短的最公共前缀。
public class Solution {
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);
}
}
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。
版权声明:本文为博主原创文章,未经博主允许不得转载。
【LeetCode-面试算法经典-Java实现】【014-Longest Common Prefix(最长公共前缀)】
原文地址:http://blog.csdn.net/derrantcm/article/details/46963385