这道题,我用的就是一开始想到的笨办法,一开始提取前两个的公共字符串再接着与第三个相比,直到比完整个字符串vector。实现代码如下:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string str;
if (strs.size() == 0){//若vector为空的情况
str = "";
return str;
}
str= strs[0];
if (strs.size() == 1) return str;//若vector只有一个字符串的情况
string str1;
int j;
for (int i = 1; i < strs.size(); i++)
{
str1 = strs[i];
j = 0;
while (str[j]==str1[j])
j++;
str=str.substr(0, j); //一开始写的是str[j]='\0',超时了,发现string是不是以‘\0’结尾与编译器有关,一般都是C风格字符数组以‘\0’结尾
}
return str;
}
};