【014-Longest Common Prefix(最长公共前缀)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
原题
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);
}
}
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。
特别说明
欢迎转载,转载请注明出处【http://blog.csdn.net/derrantcm/article/details/46963385】
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-03 21:05:35