题目地址:http://leetcode.com/onlinejudge#question_115
题目要求如下:
先用了递归,小数据过了,大数据时间超限,一会再想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));
}
}
};
小数据的测试数据如下: