首页 > 代码库 > [LeetCode]14. Longest Common Prefix

[LeetCode]14. Longest Common Prefix

 

Write a function to find the longest common prefix string amongst an array of strings.

写一个函数找到最长的公共前缀在所有的字符串数组中。

例如

"aba"

"abbb"

"abcc"

"ab"

它们的公共前缀就是"ab"

 

思路:直接找这个前缀,从第一个字符串第一个字符开始。以此后面的字符串的第一个字符以此比对

如果都相同,则把这个字符加入到结果字符串中。

代码如下

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        if(strs.empty())return "";
        string perfix="";
        for(int pf=0;pf<strs[0].size();++pf){       //第一个字符串 从第一个字符开始 假设它为perfix
            for(int i=1;i<strs.size();++i){
                if(strs[i].empty())return "";       //如果发现有空字符串 自然是没有前缀
                if(strs[i][pf]!=strs[0][pf])return perfix;  //如果发现前缀出现不同 说明从这一竖开始前缀就不同了
            }
            perfix+=strs[0][pf];                    //同一竖所有的字符都相同 这个字符就可以加入到前缀字符中
        }
        return perfix;
    }
};

 

[LeetCode]14. Longest Common Prefix