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%的人都是这个时间。