int* shortestToChar(char * S, char C, int* returnSize)
{ int len=strlen(S);
*returnSize=len;
int *res=(int *)malloc(sizeof(int)*(*returnSize));
int pre=-len; //由当前位置左侧的字符C求出其最小
for(int i=0;i<len;i++)
{ res[i]=i-pre;
if(S[i]==C)
{
res[i]=0;
pre=i;
}
}
pre=len+len;
for(int i=len-1;i>=0;i--)
{
if(S[i]==C) pre=i;
if((pre-i)<res[i]) res[i]=pre-i;
}
return res;
}
LeetCode打卡66
最新推荐文章于 2022-11-12 12:02:37 发布