LeetCode Algorithm #14 Longest Common Prefix

LeetCode Algorithm #14 Longest Common Prefix

题目内容

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

解题

主要的想法是在循环的过程中不断缩小前缀使其满足要求。先以一个字符串为前缀,再向后遍历,每次都取当前字符串和之前得到的前缀的前缀,基本没什么难度,主要是STL中vector的迭代器的使用和一个点,如果传入的向量为空的话要直接返回空串,防止在取首位元素的时候出现非法访问。

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        string prefix = "";
        if(strs.empty())
            return prefix;    
        vector<string>::iterator iter = strs.begin();
        prefix = *iter;
        int length = prefix.length();
        while(iter != strs.end()) {
            while(prefix != (*iter).substr(0, length)) {
                --length;
                prefix = prefix.substr(0, length);
            }
            ++iter;
        }
        return prefix;
    }
};

运行时间为6ms,近70%的人都是这个时间。

点赞