刷题第3天(LeetCode #14.最长公共前缀)

刷题第3天(LeetCode #14.最长公共前缀)_第1张图片
使用纵向扫描的方法完成:

首先判断字符串数组是否为空,若为空,直接返回空串。
若非空,则从首列开始,依次遍历每一列,比较相同列中,不同行的字母是否相同。若相同则继续判断下一行,若不相同则直接利用erase语句擦除第一行的字串中,此列之后(包括此列)的所有字符。最后返回字符串数组中第一行子串(此时第一行子串即为最长公共前缀)。

代码实现(c++):

class Solution 
{
     
public:
    string longestCommonPrefix(vector<string>& strs) 
    {
     
        if(strs.size()==0)       return "";
        for(int j=0;j<strs[0].length();j++)
            for(int i=0;i<strs.size();i++)
                if(strs[0][j]!=strs[i][j])
                    strs[0]=strs[0].erase(j);
        return strs[0];
    }
};

刷题第3天(LeetCode #14.最长公共前缀)_第2张图片

你可能感兴趣的:(刷题第3天(LeetCode #14.最长公共前缀))