14. Longest Common Prefix

来源:互联网 发布:浙江软件行业协会 编辑:程序博客网 时间:2024/06/07 00:22

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

Python:

class Solution(object):    def longestCommonPrefix(self, strs):        """        :type strs: List[str]        :rtype: str        """        if len(strs) == 0: #如果数组中不包含任何字符串,则返回空字符串            return ''        res = ''            min_len = len(strs[0])        for i in strs:            min_len = min(min_len,len(i))               #计算出所有字符串的最短长度        for i in range(min_len):            ch = strs[0][i]                     #将第一个字符串中的每一个字符依次赋值给ch            for j in range(1,len(strs)):        #将所有字符串的对应位置的字符与之比较,如果有一个不相同的字符,则返回res                return res            res += ch                               #如果所有的该对应位置的字符都相同,则将该字符加入到res中        return res

C++:

class Solution {public:    string longestCommonPrefix(vector<string>& strs) {        string res = "";        //如果strs.size()== 0,不进行循环,返回空字符串。        //当当前字符所在的位置超过某字符串的长度,或者字符不相同,返回res。        for (int i = 0;strs.size() > 0;++i ){             for (int j = 0;j<strs.size();++j){                if (i > strs[j].size() || (j > 0 && strs[j][i] != strs[j-1][i]))                    return res;            }            res += strs[0][i];        }        return res;    }};