给定一个字符串 S 和一个字符串 T,求 S 的不同的子序列中 T 出现的个数。
一个字符串的一个子序列是指:通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(譬如,"ACE"是"ABCDE" 的一个子序列,而 "AEC" 不是)
下面是一个例子:
S = "rabbbit", T = "rabbit"
返回 3.
详见:https://leetcode.com/problems/distinct-subsequences/description/

Java实现:

class Solution {
public int numDistinct(String s, String t) {
int m=s.length();
int n=t.length();
//dp[i][j]表示S串中从开始位置到第i位置与T串从开始位置到底j位置匹配的子序列的个数
int[][] dp = new int[m + 1][n + 1];
dp[0][0] = 1;//initial //如果S串为空,那么dp[0][j]都是0
for(int j = 1; j <= n; j++){//s is empty
dp[0][j] = 0;
} //如果T串为空,那么dp[i][j]都是1
for (int i = 1; i <= m; i++){//t is empty
dp[i][0] = 1;
} for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
dp[i][j] = dp[i - 1][j];
if (s.charAt(i - 1) == t.charAt(j - 1)) {
dp[i][j] += dp[i - 1][j - 1];
}
}
} return dp[m][n];
}
}

参考:https://www.cnblogs.com/springfor/p/3896152.html

最新文章

  1. 20151217JS便签
  2. C#调用WebService实现天气预报 http://www.webxml.com.cn
  3. Web服务器与Servlet容器
  4. 修改SVN账户密码的方法
  5. 折腾了好久的macos+apache+php+phpmyadmin 终于成功了!
  6. PHP 简易读取文件目录下的文件,生成css spirte图片
  7. seq命令
  8. Mac下Sublime快捷键
  9. TFT ST7735的Netduino驱动
  10. 2016 SyScan360 国际前瞻信息安全会议 多角度探讨信息安全
  11. CollapsingToolbarLayout学习笔记
  12. MySQL查看和修改表的存储引擎(转载+加点东西)
  13. Erlang cowboy routing 路由
  14. Java中 Linux下安装Redis
  15. Java的this关键字在继承时的作用
  16. python3: print()函数:def,end关键字介绍
  17. np.newaxis
  18. Python的原型开发带来的关于Mock的思考
  19. Batch Normalization 与 Caffe中的 相关layer
  20. 函数调用时形参的传递也会被认为是赋值操作(继承自Object后会出现的问题)

热门文章

  1. 灵活使用rewrite
  2. https证书自签
  3. LeetCode 889. Construct Binary Tree from Preorder and Postorder Traversal
  4. eclipse Tomcat 启动报错
  5. Java并发实现线程阻塞原语LockSupport
  6. u盘启动安装系统
  7. eclipse 怎么关闭 show children
  8. Bean的不同配置方式比较与应用场景
  9. 浅析Apache/Tomcat/JBOSS/Nginx之区别
  10. ASP.NET学习笔记(一)相关概念