此题利用动态规划
参考博客http://blog.youkuaiyun.com/abcbc/article/details/8978146
代码
class Solution {
public:
int numDistinct(string S, string T) {
int sLen = S.length();
int tLen = T.length();
int **numArray;
numArray = new int*[tLen+1];
for(int i = 0; i <=tLen; ++i)
numArray[i] = new int[sLen+1];
numArray[0][0] = 1;
for(int i = 1; i <=tLen; ++i)
numArray[i][0] = 0;
for(int i = 1; i <= sLen; ++i)
numArray[0][i] = 1;
for(int i = 1; i <= tLen; ++i)
for(int j = 1; j <= sLen; ++j)
{
numArray[i][j] = numArray[i][j-1];
if(T[i-1]==S[j-1])
numArray[i][j] += numArray[i-1][j-1];
}
return numArray[tLen][sLen];
}
};
本文采用动态规划方法解决字符串匹配问题,详细介绍了算法实现过程,并通过实例代码展示了解决方案。
4万+

被折叠的 条评论
为什么被折叠?



