LeetCode-115.Distinct Subsequences
来源:互联网 发布:苹果音乐编辑软件 编辑:程序博客网 时间:2024/05/19 01:32
https://leetcode.com/problems/distinct-subsequences/
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
.
转移式
dp[i][j] = dp[i - 1][j] + (s[i - 1] == t[j - 1] ? dp[i - 1][j - 1] : 0);dp[i][j]表示源字符串s前i个字符转化为目的字符串前j个字符的转化方法个数
dp[i][j]由两部分构成,考虑s[0...i-1]转化为t[0...j],直接删去s[i]。
如果s[i-1]==t[j-1],则考虑s[0...i-1]转化为t[0...j-1]的方法个数即可
int numDistinct(string s, string t) { int sl = s.length(), tl = t.length(); if (sl < tl) return 0; vector<vector<int>> dp(sl + 1, vector<int>(tl + 1,0)); for (int i = 0; i <= sl; ++i) dp[i][0] = 1; for (int i = 1; i <= sl; ++i) { for (int j = 1; j <= tl; ++j) { if (i < j) break; dp[i][j] = dp[i - 1][j] + (s[i - 1] == t[j - 1] ? dp[i - 1][j - 1] : 0); } } return dp[sl][tl]; }
0 0
- LeetCode 115. Distinct Subsequences
- [Leetcode] 115. Distinct Subsequences
- [leetcode] 115.Distinct Subsequences
- [leetcode] 115.Distinct Subsequences
- Leetcode 115. Distinct Subsequences
- 【LeetCode】115. Distinct Subsequences
- LeetCode 115. Distinct Subsequences
- [leetcode]115. Distinct Subsequences
- LeetCode-115.Distinct Subsequences
- [LeetCode] 115. Distinct Subsequences
- LeetCode 115. Distinct Subsequences
- leetcode-115. Distinct Subsequences
- leetcode-115. Distinct Subsequences
- [LeetCode]115. Distinct Subsequences
- 【Leetcode】115. Distinct Subsequences
- [LeetCode] 115. Distinct Subsequences
- leetcode:115. Distinct Subsequences
- LeetCode 115. Distinct Subsequences
- 集合、数组 详解
- 关于listview 的setOnItemClickListener失效问题
- Get与Post的区别
- NDK环境搭建
- zookeeper安装与常用指令详解
- LeetCode-115.Distinct Subsequences
- 日期格式各字母的含义
- RecyclerView 和 ListView的区别
- react学习之redux(三)
- 关于mongodb的一些总结
- 杭电1231 最大连续子序列
- JavaScript判断立方数字
- 图形编程的基础知识——渲染流程(pipeline)
- 龟兔赛跑