1.问题:
查找字符串数组中的最长公共前缀。
2.思路:
首先寻找到字符串数组中的最短的那个字符串,得到其序号以及其长度,然后根据最短字符串的长度,对每个字符串的字符和最短字符串的相同位置字符进行依次比较,直到其中某个字符串不符合则说明最长公共前缀即为上一次比较的位置,或者最短字符串被遍历完毕,则说明最短字符串即为最长公共前缀。
3.C#代码实现
public static string LongestCommonPrefix(string[] strs)
{
string res = "";
int shortestLenth = strs[0].Length;
int shortestIndex = 0;
for (int i = 0; i < strs.Length; i++)
{
if (strs[i].Length< shortestLenth)
{
shortestLenth= strs[i].Length;
shortestIndex = i;
}
}
bool flag=true;
string str = strs[shortestIndex];
for (int i = 0; i < shortestLenth; i++)
{
for (int j = 0; j < strs.Length; j++)
{
if (j== shortestIndex)
{
continue;
}
if (!strs[j][i].Equals(str[i]))
{
flag= false;
break;
}
}
if (flag)
{
res += str[i];
}
else
{
break;
}
}
return res;
}