翻译
写一个函数(或方法)来寻找一个字符串数组中的最长公共前缀。
原文
Write a function to find the longest common prefix string amongst an array of strings.
释义
"abcdefg"
"abcdefghijk"
"abcdfghijk"
"abcef"
上面的字符串数组的最长公共前缀就是"abc"。
思考
如下图所示,第一步就是要找出该字符串数组中的最短字符串的长度及其序列。
第二步,用
外层
初始
内层
否则通过临时字符串
需要所有的
如果
每次判断的字符串长度缩减之后都更新
代码
public class Solution {
public string LongestCommonPrefix(string[] strs) {
int len = strs.Length;
if(len == 0)
return "";
string result = "";
int minSize = 100000;
int minIndex = 0;
if(len == 1){
result = strs[0];
return result;
}
for(int i = 0; i < len; i++){
int size = strs[i].Length;
if(size < minSize){
minSize = size;
minIndex = i;
}
}
for(int i = minSize; i >= 0; i--){
result = strs[minIndex].Substring(0,i);
int j = 0;
for(; j < len; j++){
if(j == minIndex)
continue;
string temp = strs[j].Substring(0,i);
if(result != temp)
break;
}
if(j == len)
return result;
}
return result;
}
}
版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.csdn.net/nomasp
LeetCode 14 Longest Common Prefix(最长公共前缀)
原文:http://blog.csdn.net/nomasp/article/details/49184355