文章
6
粉丝
8
获赞
35
访问
4.3k
#include <cstdio>
#include <cstring>
#include <vector>
#define N 10010
int f[N];
void init()
{
memset(f, 0x00, sizeof(f));
f[0] = 1;
}
int main()
{
int q;
scanf("%d", &q);
while (q--)
{
char s[N];
char t[N];
scanf("%s%s", s + 1, t + 1);
int n = strlen(s + 1);
int m = strlen(t + 1);
std::vector<int> pos[26];
for (int i = m; i >= 1; i--)
pos[t[i] - 'a'].push_back(i);
init();
for (int i = 1; i <= n; i++)
{
for (int j : pos[s[i] - 'a'])
f[j] = (f[j] + f[j - 1]) % 1000000007;
}
printf("%d\n", f[m]);
}
}
登录后发布评论
暂无评论,来抢沙发