[Leetcode]Distinct Subsequences
来源:互联网 发布:免费数据统计分析工具 编辑:程序博客网 时间:2024/06/02 02:01
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]表示T的前j位是S的前i位的子串的情况数。递推公式是如果S的第i位等于T的第j位, dp[i][j] = dp[i-1][j-1] + dp[i-1][j], 如果不等, dp[i][j] = dp[i-1][j]
class Solution: # @return an integer def numDistinct(self, S, T): lenS, lenT = len(S), len(T) if lenT == 0: return 1 if lenS == 0: return 0 dp = [[0 for j in xrange(lenT + 1)] for i in xrange(lenS + 1)] for i in xrange(lenS + 1): dp[i][0] = 1 for i in xrange(1, lenS + 1): for j in xrange(1, lenT + 1): dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j] if S[i -1] == T[j - 1] else dp[i - 1][j] return dp[lenS][lenT]
还有一维动态规划的解法,参考http://blog.csdn.net/linhuanmars/article/details/23589057
0 0
- LeetCode Distinct Subsequences
- [LeetCode]Distinct Subsequences
- [Leetcode] Distinct Subsequences *
- [leetcode] Distinct Subsequences
- [LeetCode] Distinct Subsequences
- [Leetcode] Distinct Subsequences
- leetcode 111: Distinct Subsequences
- LeetCode Distinct Subsequences
- [leetcode] Distinct Subsequences
- LeetCode - Distinct Subsequences
- Leetcode:Distinct Subsequences
- [LeetCode]Distinct Subsequences
- [LeetCode] Distinct Subsequences
- [Leetcode]Distinct Subsequences
- [leetcode]Distinct Subsequences
- Leetcode: Distinct Subsequences
- Leetcode: Distinct Subsequences
- [leetcode] Distinct Subsequences
- TCP三次握手协议和SYN攻击以及DDOS简介
- Android中生成条形码和二维码
- 深入浅出学习Hibernate框架(二):JDBC基础操作
- OpenCV中cvFindContours函数
- 详细讲自定义struts过滤器和用处
- [Leetcode]Distinct Subsequences
- 房地产装饰行业ERP工程项目实施要点分析
- 深入浅出学习hibernate框架(三):java的反射机制
- 关于double 1/3;输出结果是0.0的问题
- android应用开发-------------应用崩溃全局异常捕获处理(UncaughtExceptionHandler)
- [Dahua Lin] 对数学的新思考
- C# 与C++的数据转换
- Servlet传输视频流的问题
- 安装Python的easy_install工具和BeautifulSoup模块