#include<iostream> #include

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int f(const string &s, const string &t)
{
    int n = s.length(), m = t.length();
    vectorshift(128, m + 1);
    int i, j;
    for (j = 0; j < m; j++)
        shift[t[j]] = m - j;
    for (i = 0; i <= n - m; i += shift[s[i + m]]) {
        j = 0;
        while (j < m && s[i + j] == t[j]) j++;
        if (j == m) return i;
    }
    return -1;
}
int main()
{
    string a, b;
    cin >> a >> b;
    cout << f(a, b) << endl;
    return 0;
}

假设输入字符串由 ASCII 可见字符组成,当输入为“GoodLuckCsp2022 22”时,第 20 行的“j++”语句执行次数为 2。( )

答案
A

题目信息

题号:1600
题型:判断题
难度:普通