[leetcode] @python 115. Distinct Subsequences
2016-03-17 16:27
671 查看
题目链接
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.
题目大意
给定字符串S和T,判断S中有多少个不同的子串T解题思路
动态规划求解代码
class Solution(object): def numDistinct(self, s, t): """ :type s: str :type t: str :rtype: int """ dp = [[0 for i in range(len(t) + 1)] for j in range(len(s) + 1)] for j in range(len(s) + 1): dp[j][0] = 1 for i in range(1, len(s) + 1): for j in range(1, min(i + 1, len(t) + 1)): if s[i - 1] == t[j - 1]: dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1] else: dp[i][j] = dp[i - 1][j] return dp[len(s)][len(t)]
相关文章推荐
- python 刷题:实现队列
- [leetcode] @python 114. Flatten Binary Tree to Linked List
- python 列表list 元组tuple 字典dict 集合set 介绍
- PIL学习笔记
- Python 日志向控制台和文件输出
- 几款python集成开发环境
- Python进程
- python 编码问题
- 对Python面向对象的理解
- Python (九) 协程以及数据库操作
- Python 解析配置模块之ConfigParser详解
- python 刷题:替换空格
- python 刷题:从尾到头打印链表
- 简单python 模拟登陆
- python 刷题:变态跳台阶
- python 刷题:跳台阶
- 机器学习实战笔记(四):Logist线性回归算法的Python实现
- python设置字体颜色
- python 刷题:二维数组中的查找
- Java之——运行Python脚本的几种方式