本题并没有太大的难度,有两点值得记忆:其一:由于用到vector容器,所以应包含头文件vector;其二:vector不支持初始化列表方式初始化,即vector<string> strs = {"abcdef", "abcdrgh", "abcthu"}会导致编译出错。
#include<iostream>
#include<string>
#include<vector>
using namespace std;
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
vector<string>::iterator iterStartVec;
string comStr;
string tmpComStr;
string::iterator iter1,iter2;
for(iterStartVec = strs.begin(); iterStartVec != strs.end(); iterStartVec++) {
if(iterStartVec == strs.begin()) {
comStr = *iterStartVec;
continue;
}
tmpComStr = comStr;
iter1 = tmpComStr.begin();
iter2 = (*iterStartVec).begin();
for(; iter1 != tmpComStr.end() && iter2 != (*iterStartVec).end(); ) {
if(*iter1 != *iter2){
break;
}
iter1++;
iter2++;
}
comStr = "";
for(string::iterator iter3 = tmpComStr.begin(); iter3 < iter1; iter3++) {
comStr += *iter3;
}
}
cout << comStr << endl;
//getchar();
return comStr;
}
};
int main() {
vector<string> strs;
strs.push_back("abcdhij");
strs.push_back("abcdceb");
strs.push_back("ab");
Solution solution;
solution.longestCommonPrefix(strs);
getchar();
}