#include <bits/stdc++.h>
using namespace std;
void Lowercasing(string &s) {
for(int i = 0; i < s.size(); i++) {
if(s[i] >= 'A' && s[i] <= 'Z') {
s[i] = s[i] - 'A' + 'a';
}
}
}
int main() {
string str;
getline(cin, str);
Lowercasing(str);
string target;
getline(cin, target);
Lowercasing(target);
vector<string> carry;
string token;
stringstream ss(target);
while(ss >> token) { // 以空格为间隔,从已经输入的string中读入vector传得字符串参数
carry.push_back(token);
}
for(int i = 0; i < carry.size(); i++) {
Lowercasing(carry[i]);
}
int cnt_space = 0;
vector<int> carry_space;
for(int i = 0; i < target.size() - 1; i++) {
if(target[i] == ' ') {
cnt_space ++;
}
if(target[i] == ' ' && target[i + 1] != ' ') {
carry_space.push_back(cnt_space);
}
}
int index = 0;
for(int i = 0; i < carry.size(); i++) {
if(str == carry[i]) {
index = i;
break;
}
}
int cnt = 0;
for(int i = 0; i < carry.size(); i++) {
if(str == carry[i]) {
cnt ++;
}
}
int len = 0;
for(int i = 0; i < index; i++) {
len += carry[i].size();
}
cout << index << endl;
cout << carry_space[index] << endl;
cout << len << endl;
if(cnt == 0) {
cout << -1;
} else if(index != 0){
cout << cnt << " " << carry_space[index - 1] + len;
} else {
cout << cnt << " " << carry_space[index];
}
}
这段代码在第八组数据是错的,我在本地vscode跑半天不出结果,所以也不知道哪里错了。