题目如下:
示例如下图所示:
代码:
char * longestCommonPrefix(char ** strs, int strsSize){
int num=0,str=0,i;
char string;
str=strlen(strs[0]);
for( i=1;i<strsSize;i++){
if(str>strlen(strs[i])){
str=strlen(strs[i]); //找出字符串数组中长度最短的字符串
}
}
for(int j=0;j<str;j++){
string=strs[0][j];
for(int i=1;i<strsSize;i++){ //利用循环找出相同的部分
if(strs[i][j]!=string){
j=-1;
break;
}
}
if(j==-1){
break;
}
num++;
}
char *S=(char*)malloc(sizeof(char)*(num+1)); //动态分配内存的时候一定要预留结束符'\0'的位置!
for( i=0;i<num;i++){ //不然出现输出越界的情况!!
S[i]=strs[0][i];
}
S[i]='\0';
return S;
}