题目描述:
Write a function to find the longest common prefix string amongst an array of strings.
很简单就一句话,但是一开始还是有些不理解,什么叫“common prefix string”共同的前缀字符串?嗯就是给一个string类型的vector容器,找出所有的字符串从左往右相同的部分。
需要注意的是若没有相同的部分那么返回一个空的字符串“”。
string.substr()的使用,会比较方便。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.size() == 0) {
return "";
}
else if(strs.size()==1){
return strs[0];
}
string lcp = strs[0];
vector<string>::iterator it;
//遍历vector中的所有的字符串
for (it = strs.begin(); it != strs.end(); it++) {
lcp = getlongestCommonPrefixWithTwoString(lcp, (*it));
}
return lcp;
}
//一个找出两个字符串的公共前缀的函数
string getlongestCommonPrefixWithTwoString(string x, string y) {
int length, i;
if (x.length()<y.length()) {
length = x.length();
}
else {
length = y.length();
}
for (i = 0; i<length; i++) {
if (x[i] != y[i]) {
break;
}
}
if (i == 0) {
return "";
}
else {
string result = x.substr(0, i );
return result;
}
}
};