[LeetCode]14. Longest Common Prefix

来源:互联网 发布:网络语言的利与弊 编辑:程序博客网 时间:2024/05/20 04:46

Description

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

Discussion

查找公共前缀的问题。只需要从头开始把每个数组的第i个字符进行比较,有不一样的就跳出循环即可。另外需要注意特殊情况处理。

算法的时间复杂度为O(n)

C++ Code

class Solution {public:    string longestCommonPrefix(vector<string>& strs) {        //若数组为空        if(strs.size() == 0)        {            return "";        }        //若只有一个字符串        if(strs.size() == 1)        {            return strs[0];        }        //若字符串有空串        for(int i = 0; i < strs.size(); i++)        {            if(strs[i] == "")            {                return "";            }        }        int length = 0;        int isCommon = 1;        //从每个字符串第一个字符开始进行对比,直到发现有不一样的        while(isCommon && length <= strs[0].length())        {            for(int i = 0; i < strs.size() - 1; i++)            {                if(strs[i][length] != strs[i + 1][length])                {                    isCommon = 0;                    break;                }            }            if(isCommon)            {                length++;            }        }        return strs[0].substr(0, length);    }};
原创粉丝点击