深刻地体会到一个好的方法可以完美避开所有坑点。
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<climits>
#include<algorithm>
using namespace std;
char Aim[15],Pas[2010000];
int La,Lp,Pos = -1,Ans;
void Init(char a[],int Len) {
for(int i = 0; i<Len; i++) {
if(a[i] >= 'a' && a[i] <= 'z') {
a[i] = a[i] - 'a' + 'A';
}
}
}
bool Cmp(int Start) {
for(int i = 0; i<La; i++) {
if(Aim[i] != Pas[i + Start]) {
return false;
}
}
return true;
}
int main() {
gets(Aim);
gets(Pas);
La = strlen(Aim);
Lp = strlen(Pas);
Init(Aim,La);
Init(Pas,Lp);
for(int i = 0; i<Lp; i++) {
if(Pas[i] != ' ' && Pas[i + La] == ' ' && Cmp(i)) {
if(!i || Pas[i - 1] == ' ') {
if(Pos == -1) {
Pos = i;
}
Ans++;
}
}
}
if(Ans) {
printf("%d %d",Ans,Pos);
} else {
printf("-1");
}
return 0;
}