博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Distinct Subsequences
阅读量:5041 次
发布时间:2019-06-12

本文共 1333 字,大约阅读时间需要 4 分钟。

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.

 

定义f[i][j]表示在S[0,i]中,T[0,j]出现了几次。无论s[i]和t[j]是否相等,如果不匹配s[i],则f[i][j]=f[i-1][j];若s[i]==s[j],

f[i][j]=f[i-1][j]+[i-1][j-1]。

另外,当t=""时,只有一种匹配方式,f[i][0]=1;当s="",t!=""时,无论如何无法匹配,此时f[0][j]=0。

 参考:http://www.cnblogs.com/yuzhangcmu/p/4196373.html

int numDistinct(string s, string t) {        int m=s.size();        int n=t.size();                vector
> f(m+1,vector
(n+1,0)); for(int i=0;i<=m;i++) { for(int j=0;j<=n;j++) { if(i==0 && j==0) f[i][j]=1; else if(i==0) f[i][j]=0; else if(j==0) f[i][j]=1; else f[i][j]=f[i-1][j]+(s[i-1]==t[j-1]?f[i-1][j-1]:0); } } return f[m][n]; }

 

转载于:https://www.cnblogs.com/573177885qq/p/6257556.html

你可能感兴趣的文章
ZJOI2019 线段树
查看>>
继承与多态 课后习题
查看>>
Redis 数据类型
查看>>
sqlserver时间函数
查看>>
ASP.NET Aries 高级开发教程:Excel导入之代码编写(番外篇)
查看>>
数据结构与算法JS实现
查看>>
ISCSI网络存储服务
查看>>
关于svn和maven结合使用的讨论
查看>>
Microsoft Azure Preview portal 以及Preview Features介绍
查看>>
ZeroMQ:云计算时代最好的通讯库
查看>>
45.纯 CSS 创作一个菱形 loader 动画
查看>>
vue组件 Prop传递数据
查看>>
python实现排序算法 时间复杂度、稳定性分析 冒泡排序、选择排序、插入排序、希尔排序...
查看>>
正则表达式
查看>>
NSNotificationCenter使用心得(原)
查看>>
ios开发应用内实现多语言自由切换 (转)
查看>>
没有特别幸运
查看>>
Introduction to ASP.NET Web Programming Using the Razor Syntax (C#)
查看>>
修改IP的方法(C#)
查看>>
動態SQL運用實例
查看>>