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;
    
}
posted @ 2023-12-20 19:14  FurippuWRY  阅读(12)  评论(0)    收藏  举报