Leetcode典型题解答和分析、归纳和汇总——T14(最长公共前缀)

题目描述:

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共字串,则返回空字符串。

解题思路:

【1】水平扫描法:即对字符串数组中的每一个字符进行扫描比较,先从str[1]和str[2]开始,得到最长公共前缀,然后再以此类推。

【2】采用分而治之的方法。即将字符串数组进行分组,每个组找出最长公共前缀,然后再进行比较。

【3】采用二分查找的办法。将第一个字符串进行平均划分,如果相同,则把再把不相同的字符进行二分。

class Solution{
    public:
    string longestCommonPrefix(vector<string>& strs){
        //采用双指针的方法
        if(strs.size()==0)  return string();// 如果字符串数组长度为0,则返回空

        else if(strs.size()==1)  return strs[0]; //只有一个就返回本身

        string result = "";  //初始化返回结果
        //用i来指向每个字符串的相同位置的字符,j来进行遍历
        for(int i=0;i<strs[0].size();i++)
        {
            for(int j=1;j<strs.size();j++)
            {
                if(strs[0][i]!=strs[j][i])
                    return result;         //只要与下一个字符串存在不同,即返回输出。
            }
          result +=strs[0][i];
        }    
        return result;
    }
};
发布了56 篇原创文章 · 获赞 7 · 访问量 4495

猜你喜欢

转载自blog.csdn.net/weixin_44504987/article/details/104278416