zoukankan      html  css  js  c++  java
  • 115. Distinct Subsequences

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

    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).

    Example 1:

    Input: S = "rabbbit", T = "rabbit"
    Output: 3 Explanation: As shown below, there are 3 ways you can generate "rabbit" from S. (The caret symbol ^ means the chosen letters)

    rabbbit ^^^^ ^^
    rabbbit

    ^^ ^^^^
    rabbbit
    ^^^ ^^^

    Example 2:

    Input: S = "babgbag", T = "bag"
    Output: 5 Explanation: As shown below, there are 5 ways you can generate "bag" from S. (The caret symbol ^ means the chosen letters)

    babgbag ^^ ^
    babgbag
    ^^ ^
    babgbag
    ^ ^^
    babgbag
    ^ ^^
    babgbag
    ^^^

    Approach #1: DP. [C++]

    class Solution {
    public:
        int numDistinct(string s, string t) {
            int ls = s.length();
            int lt = t.length();
            vector<vector<long>> dp(lt+1, vector<long>(ls+1));
            fill(dp[0].begin(), dp[0].end(), 1);
            for (int i = 1; i <= lt; ++i) {
                for (int j = 1; j <= ls; ++j) {
                    if (t[i-1] == s[j-1]) 
                        dp[i][j] = dp[i-1][j-1] + dp[i][j-1];
                    else 
                        dp[i][j] = dp[i][j-1];
                }
            }
            return dp[lt][ls];
        }
    };
    

      

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    ryzen nvidia hackintosh
    mysql count 主键之坑
    git命令
    MYSQL 注释
    yaf twig配置
    1.YAF 的安装
    yaf nginx 设置
    ubuntu 16 阿里云 vsftpd
    win10下 homestead 安装
    活动调度
  • 原文地址:https://www.cnblogs.com/h-hkai/p/10363481.html
Copyright © 2011-2022 走看看