P9940 题解
设两字符串分别为 \(a,b\)。
可以从 \(a_0\) 开始,遍历 \(b\),如果 \(a_i=b_j\),\(i\) 加一,然后继续遍历 \(b\),重复上述操作。如果 \(a\) 还没有遍历完,那么从 \(b_0\) 开始再遍历一次,继续搜相同字符。每遍历一次,次数 \(ans\) 就加一,最后输出 \(ans\) 即可。
#include<bits/stdc++.h>
using namespace std;
string a, b;
int i = 0, ans = 0;
int main() {
cin >> a >> b;
while (i <= b.size()) {
for (int j = 0; j <= a.size(); ++j) {
if (a[j] == b[i]) i++;
}
++ans;
}
cout << ans;
return 0;
}

浙公网安备 33010602011771号