LeetCode(Oct 19 '12):Distinct Subsequences

题目地址:http://leetcode.com/onlinejudge#question_115

题目要求如下:

LeetCode(Oct 19 '12):Distinct Subsequences_第1张图片

先用了递归,小数据过了,大数据时间超限,一会再想DP的办法。

递归代码如下(可以把尾递归去掉):

class Solution {
public:
    int count;
    int numDistinct(string S, string T)
 	{
		count=0;
		recurD(S,T);
		return count;
    }

    void recurD(string S,string T)
	{
		if(T.length()==0)
		{
			count++;
			return;
		}

		if(S.length()==0||S.length()<T.length()) return;

		while(S.find(T[0])!=string::npos)
		{
			S=S.substr(S.find(T[0])+1);
			recurD(S,T.substr(1));
		}
	}
};


小数据的测试数据如下:

LeetCode(Oct 19 '12):Distinct Subsequences_第2张图片

你可能感兴趣的:(LeetCode(Oct 19 '12):Distinct Subsequences)