原题题目
代码实现
int numDistinct(char * s, char * t){
int tlen = strlen(t),slen = strlen(s);
long dp[tlen+1][slen+1],count,end,start,ret = 0;
memset(dp,0,sizeof(dp));
for(count=1;count<=tlen;count++)
{
for(end=count;end<=slen;end++)
{
if(s[end-1] == t[count-1])
{
if(count == 1) dp[count][end] = 1;
else
{
for(start=0;start<end;start++)
dp[count][end] += dp[count-1][start];
}
}
if(count == tlen) ret += dp[count][end];
}
}
return ret;
}