90分求助
查看原帖
90分求助
994007
Drewjin楼主2023/8/27 23:47
#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跑半天不出结果,所以也不知道哪里错了。

2023/8/27 23:47
加载中...