您的位置:首页 > 其它

leetCode 之 Longest Common Prefix

2015-06-07 22:06 204 查看
LeetCode : Longest Common Prefix

题目原意:将字符串数组中最长的共同字符前缀返回。

注意: 判断空字符”“与NULL的情况。并在程序中加以区分判定

把题意理解正确了,本题就不存在什么难处了。

代码如下(leetCode 测得运行时间为0ms):

char  *longestCommonPrefix(char** strs, int strsSize)
{
char  *a = NULL;

int i, j, k;
int shortLen ;

if (strsSize < 1) //!< 空字符串""
{
return "";
}
if (strs == NULL) //!<  NULL指针
{
printf("The string is NULL");
return NULL;
}

shortLen = strlen(strs[0]);  //!< 保存前缀的长度
if (strsSize == 1)
{
return strs[0];
}

for (j = 1; j < strsSize; ++j)  //!< 依次比较每一个字符串
{
k = 0;
for (i = 0; i < shortLen; ++i)  //!< 比较相同位置的字符
{
if (strs[0][i] == strs[j][i])
{
++k;
}
else
{
shortLen = (k >= shortLen) ? shortLen : k;  //!< 保存最小的前缀长度
break;
}
}
}

a = malloc(sizeof(char)*(shortLen+1));
for (i = 0; i < shortLen; ++i)
{
a[i] = strs[0][i];
}
a[i] = '\0';

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