兔子的名字 dp子序列
兔子的名字
https://ac.nowcoder.com/acm/problem/20859
通过find在字符串的指定位置开始查找,在字符串t中一个字符一个字符的寻找可爱子序列,每次找到后改变find字符串t的位置,直到找全一个可爱子序列,可爱值+1,再接着遍历一下可以可爱子序列。
#pragma GCC optimize(2) #include <bits/stdc++.h> #define ll long long #define endl '\n' using namespace std; string t[1010],r[105]; int n,m; int main() { ios::sync_with_stdio(0);cin.tie(0), cout.tie(0); cin>>n>>m; for(int i=0;i<n;i++)cin>>t[i]; for(int i=0;i<m;i++)cin>>r[i]; for(int i=0;i<n;i++) { int ans=0; for(int j=0;j<m;j++) { int cnt=0,pos=-1; for(int k=0;k<r[j].size();k++) { if((pos=t[i].find(r[j][k],pos+1))!=-1) cnt++; if(cnt==r[j].size()){ ans++;break; } } } cout<<ans<<endl; } return 0; }