给定两个字符串s和t,统计并返回在s的子序列中t出现的个数,结果对1E9+7取模。
1<=|s|,|t|<=1000
分析:判断两字符串的最后一个字符:如果相同,则可以选择匹配或者不匹配;如果不同,则只能选择不匹配。初始条件:t为空时答案为1。
mint dp[1005][1005];
class Solution {
public:
int numDistinct(string s, string t) {
int ns = s.size();
int nt = t.size();
for (int i = 0; i <= ns; i++) {
dp[i][0] = 1;
}
for (int i = 1; i <= ns; i++) {
for (int j = 1; j <= nt; j++) {
if (s[i-1] == t[j-1]) {
dp[i][j] = dp[i-1][j-1] + dp[i-1][j];
} else {
dp[i][j] = dp[i-1][j];
}
}
}
return dp[ns][nt].val();
}
};
标签:string,int,不同,leetcode115,序列,1005,size
From: https://www.cnblogs.com/chenfy27/p/18666982