写一个函数(或方法)来寻找一个字符串数组中的最长公共前缀。
Write a function to find the longest common prefix string amongst an array of strings.
"abcdefg" "abcdefghijk" "abcdfghijk" "abcef"
上面的字符串数组的最长公共前缀就是"abc"。
如下图所示,第一步就是要找出该字符串数组中的最短字符串的长度及其序列。
第二步,用 for 循环从第一个字符串到最后一个字符串依次做比较,具体步骤如下:
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; } }