30分想不出来为什么了,求大佬
查看原帖
30分想不出来为什么了,求大佬
1181842
JH2004楼主2024/1/23 11:39
#include <iostream>
#include <algorithm>
#include<string>
#include<cmath>
#include<vector>
#include<cstdlib>
#include <sstream>
#include<utility>
using namespace std;

string a, b; int s, p; bool bl = 1;
int main()
{
    getline(cin, a);
    getline(cin, b);
    for (int i = 0; i < a.size(); i++)
        if (a[i] >= 65 && a[i] <= 97)a[i] += 32;
    for (int i = 0; i < b.size(); i++) {
        if (b[i] >= 65 && b[i] <= 90)b[i] += 32;
        else continue;
    }
    while (1) {       
        if (b.find(a, p) != string::npos) {
            s++;
            p = b.find(a, p) + a.size();
            if (b[p] != ' ')s--, bl = 0;
            if ((p - a.size()) != 0 && b[p - a.size() - 1] != ' ' && bl)s--, bl = 1;
        }
        else if (b.find(a, p) == string::npos && s != 0)break;
        else {
            s = -1; break;
        }
    }
    if (s == -1)cout << s << endl;
    else cout << s << " " << b.find_first_of(a);
    return 0;
}
2024/1/23 11:39
加载中...