getchar全TLE,蒟蒻疯了
查看原帖
getchar全TLE,蒟蒻疯了
235561
samzhangjy楼主2021/9/28 20:45

rt,这道破水题调了一晚上没调出来,多半废了……

#include <iostream>
#include <string>
#include <cstdio>
using namespace std;

string target, wd;
int cnt, pos, cur = -1;
char ch;

int main() {
    // ios::sync_with_stdio(false); cin.tie(0);
    cin >> target;
    for (int i = 0; i < target.size(); i++) {
        if (target[i] >= 'A' && target[i] <= 'Z') target[i] -= 'A', target[i] += 'a';
    }
    getchar();
    while ((ch = getchar()) != '\n') {
        cur++;
        if (ch == ' ' && wd != "") {
            // cout << wd << " In" << endl;
            bool flag = 1;
            if (wd.size() != target.size()) continue;
            for (int i = 0; i < wd.size(); i++) {
                if (wd[i] >= 'A' && wd[i] <= 'Z') wd[i] -= 'A', wd[i] += 'a';
                if (target[i] != wd[i]) {
                    flag = 0;
                    break;
                }
            }
            if (flag) {
                if (cnt == 0) pos = cur - wd.size();
                cnt++;
            }
            wd = "";
        }
        if (ch != ' ') wd += ch;
        // cout << ch << ' ' << wd << ' ' << cur << endl;
    }
    bool flag = 1;
    if (wd.size() == target.size()) {
        for (int i = 0; i < wd.size(); i++) {
            if (wd[i] >= 'A' && wd[i] <= 'Z') wd[i] -= 'A', wd[i] += 'a';
            if (target[i] != wd[i]) {
                flag = 0;
            }
        }
        if (flag) {
            if (cnt == 0) pos = cur - wd.size();
            cnt++;
        }
    }
    if (cnt > 0) cout << cnt << ' ' << pos << endl;
    else cout << -1 << endl; 
    return 0;
}
2021/9/28 20:45
加载中...