题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例
代码
public class Solution
{
public string LongestCommonPrefix(string[] strs)
{
int i = 0; int m = int.MaxValue; int n=0 ;
for (int k = 0; k < strs.Length;k++)
{
if (strs[k].Length > m)
m = strs[k].Length;//找出strs[k]中最小长度,用m表示
}
for (int k = 0; k < strs.Length; k++)
{
if (strs[k].Length != m)
{
n = k;//找出最小长度字符串所在位置,用n表示
break;
}
}
if (strs.Length == 0)
return "";
for (i = 0; i < m; i++)//如果此处为i<strs[0].Length,后面的字符串如果长度小于strs[0].Length,数组下标会越界
{
for (int j = 1; j < strs.Length; j++)
{
if (strs[0][i] != strs[j][i])
{
return strs[0].Substring(0, i);
}
}
}
return strs[n];//如果strs[0]已经走过的元素都满足strs[0][i] = strs[j][i],返回最小的那个字符串
}
}