您的位置:首页 > 其它

14. Longest Common Prefix

2016-04-26 10:52 260 查看
题目:

Write a function to find the longest common prefix string amongst an array of strings.

写一个函数找到多个字符串中最长前缀。

描述方法:

假设字符串数组为 { "12345" , "1246" , "1248"},最长前缀为 “12”。

字符串数组声明  char * str[]= { "12345" , "1246" , "1248"}; 

str[] 表明这是一个数组,char* 表明类型为char*。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

char* longestCommonPrefix(char** strs, int strsSize)
{

if(strsSize==0)
return "";

char ** s;
s=strs;//s指向*strs
int strsl=strlen(*s);//多个字符串中的最短长度

int i;
for(i=0;i<strsSize;i++)
{
if(strlen(*s)<strsl)
{
strsl=strlen(*s);

}
s++;
}

char * prefix=(char *)malloc(sizeof(char)*(strsl+1));
int j;
char tem;
s=strs;//s指向*strs
for(i=0;i<strsl;i++)
{
tem=strs[0][i];
for(j=1;j<strsSize;j++)
{
if(tem!=strs[j][i])
break;
}
if(j==strsSize)
prefix[i]=tem;
else
break;
}

prefix[i]='\0';
return prefix;

}

void main()
{
char *strs[] = { "12345" , "1246" , "1248"};
//for(int i=0;i<3;i++)
//{
// printf("%s ",strs[i]);
//}
char * prefix;
prefix=longestCommonPrefix(strs, 3);
printf("%s\n",prefix);
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: