思路:
思路很直接, 先判断前两个字符串的公共前缀, 然后拿这个前缀和下一个字符串继续匹配, 一直循环下去
string LCPOfTwo(string& str1, string& str2) {
int len1 = str1.length(), len2 = str2.length();
if (len1 < len2) return LCPOfTwo(str2, str1);
string prefix = "";
for (int i = 0; i < len1; i++) {
if (str1[i] == str2[i]) prefix += str1[i];
else return prefix;
}
return prefix;
}
string longestCommonPrefix(vector<string>& strs) {
int size = strs.size();
if (! size) return "";
if (size == 1) return strs[0];
string prefix = strs[0];
for (int i = 1; i < size; i++) {
prefix = LCPOfTwo(prefix, strs[i]);
}
return prefix;
}