最长公共前缀

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

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

示例 1:
输入: ["flower","flow","flight"]输出: "fl"
示例 2:
输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。


public string LongestCommonPrefix(string[] strs) {

    if(strs == null || strs.Length == 0) return "";
    if(strs.Length == 1) return strs[0];

    //找一个最短的长度的str
    int minLen = int.MaxValue;
    for(int i = 0;i<strs.Length;i++)
    {
        if(minLen > strs[i].Length)
        {
            minLen = strs[i].Length;
        }
    }

    int resLen = 0;
    for(int i = 0;i < minLen; i++)
    {
        for(int j = 0;j<strs.Length-1;j++)
        {
            if(strs[j][i] != strs[j+1][i])
            {
                i = minLen;
                resLen--;//一下子跳不出,下面的++会执行,所以这里--矫正
                break;
            }
        }
        resLen++;
    }

    return strs[0].Substring(0,resLen);
}

首页 我的博客
粤ICP备17103704号