首页 > 其他 > 详细

Distinct Subsequences

时间:2015-09-04 02:32:01      阅读:351      评论:0      收藏:0      [点我收藏+]

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.

?

public class Solution {
    public int numDistinct(String s, String t) {
        int[][] dp = new int[s.length()+1][t.length()+1];
        dp[0][0] = 1;
        for (int i = 1; i <= s.length(); i++) {
			dp[i][0] = 1;
		}
        for (int i = 1; i <= t.length(); i++) {
			dp[0][i] = 0;
		}
        for (int i = 1; i <= s.length(); i++) {
			for (int j = 1; j <= t.length(); 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[s.length()][t.length()];
    }
}

?

Distinct Subsequences

原文:http://hcx2013.iteye.com/blog/2240413

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!