【发布时间】:2019-08-14 13:47:23
【问题描述】:
我无法理解下面的代码。
index=strlen(strs[0])得到什么值?char *a= malloc (sizeof(char)*(index+1))这是为char数组分配数组的标准方式吗?strs[i][j]代表什么?
这是我在 leetcode 上找到的代码。只是试图理解代码。 (来自 sanghi 用户在 leetcode 上的代码)
#include<string.h>
char* longestCommonPrefix(char** strs, int strsSize)
{
int i=0; int j=0;int index;int tempindex=0;
if(strsSize<1)
return "";
index=strlen(strs[0]);
char *a;
a= malloc(sizeof(char)*(index+1));
strcpy(a,strs[0]);
for(i=1;i<strsSize;i++)
{ tempindex=0;
for(j=0;j<index;j++)
{
if(a[j]==strs[i][j])
tempindex++;
else
{a[j]='\0';
break;
}
}
if (tempindex==0)return ("");
if(tempindex<index)index=tempindex;
}
return a;
}
预期结果可以在https://leetcode.com/problems/longest-common-prefix/找到
【问题讨论】:
-
在调试器中运行它并检查您感兴趣的值。
-
在我看来,您需要花时间和金钱来阅读一些书籍。我不推荐从在线评委/竞赛网站学习(我强烈推荐除了此类网站之外的任何其他网站)..
标签: c arrays character c-strings strlen