翻譯
寫一個函數(或方法)來尋找一個字符串數組中的最長公共前綴。
原文
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;
}