zoukankan      html  css  js  c++  java
  • Distinct Subsequences (dp)

    Given a string S and a string T, count the number of distinct subsequences of T in S.

    A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (ie, "ACE" is a subsequence of "ABCDE" while "AEC" is not).

    Here is an example:
    S = "rabbbit", T = "rabbit"

    Return 3.

     题意:求S中所有子串中与T相同的有多少个

    空串是任意字符串的子串。

    代码:

      class Solution {
      public:
          int numDistinct(string S, string T) {
              int row=S.size()+1;
              int col=T.size()+1;
              vector<int> temp(col,0);
              vector<vector<int>> dp(row,temp);
              dp[0][0]=1;
              for(int i=1;i<row;++i) dp[i][0]=1;
    
              for(int i=1;i<row;++i){
                  for(int j=1;j<=i&&j<col;++j){
                      if(S[i-1]==T[j-1]){
                          dp[i][j]=dp[i-1][j-1]+dp[i-1][j];
                      }else{
                          dp[i][j]=dp[i-1][j];
                      }
                  }
              }
              return dp[row-1][col-1];
          }
      };
  • 相关阅读:
    DRF 版本和认证
    DRF 视图和路由
    DRF 序列化组件
    RESTful
    Vuex以及axios
    npm、webpack、vue-cli
    Vue 生命周期
    Vue Router
    Vue 组件
    Vue 快速入门
  • 原文地址:https://www.cnblogs.com/fightformylife/p/4242233.html
Copyright © 2011-2022 走看看