Leercode 115. 不同的子序列(DAY 65) ---- 动态规划学习期(第二题直接拿下! 今天就做两道 还要把高数作业应付一下)

原题题目

在这里插入图片描述



代码实现

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;
}

猜你喜欢

转载自blog.csdn.net/qq_37500516/article/details/114781546