C语言版本
char* longestCommonPrefix(char** strs, int strsSize) {
int len = 0;
int temp = 0;
int num = 0;
len = strlen(strs[0]);
for(int i = 1; i<strsSize; i++)
{
temp = strlen(strs[i]);
if (temp < len)
{
len = temp;
}
}
if (len == 0) return "";
char *pubStr = (char*)malloc(sizeof(char)*len);
int k = 0;
for (int j = 0; j<len; j++)
{
for(int i = 0; i<strsSize-1; i++)
{
if(strs[i][j]==strs[i+1][j])
{
num++;
}
}
if((num == strsSize -1)&& k>=j)
{
pubStr[k++] = strs[0][j];
}
num = 0;
}
pubStr[k] = 0;
if(k==0)
{
return "";
}
return pubStr;
}
C++版本
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.empty()) return "";
for (int j = 0; j < strs[0].size(); ++j) {
for (int i = 0; i < strs.size() - 1; ++i) {
if (j >= strs[i].size() || j >= strs[i + 1].size() || strs[i][j] != strs[i + 1][j]) {
return strs[i].substr(0, j);
}
}
}
return strs[0];
}
};