14.最长公共前缀

题目

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

示例 1:

1
2
输入: ["flower","flow","flight"]
输出: "fl"

示例 2:

1
2
3
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z

思路

用第一个字符串作为基准字符串,用剩下的字符串与之逐位比较.

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public string LongestCommonPrefix(string[] strs)
{
if (strs == null || strs.Length == 0)
{
return "";
}
if (strs.Length == 1)
{
return strs[0];
}
for (int i = 0; i < strs[0].Length; ++i)
{
for (int j = 1; j < strs.Length; ++j)
{
if (strs[j].Length <= i || strs[0][i] != strs[j][i])
{
return strs[0].Substring(0, i);
}
}
}
return strs[0];
}