测试点全部RE
查看原帖
测试点全部RE
771448
ACE_OKK楼主2024/7/9 17:00
#include <bits/stdc++.h>
using namespace std;
char sa[15],sb[1000005],c;

int main() {
	scanf("%s",sa+1);
	// 吸收占位符
	scanf("%c",&c);
	int la = strlen(sa+1);

	int lb = 0;
	while(1) {
		scanf("%c",&c);
		sb[++lb] = c;
		if(c=='\n')
			break;
	}
	// 全部转为小写
	for(int i=1; i<=la; i++)
		if('A'<=sa[i] && sa[i]<='Z')
			sa[i] = sa[i]-'A'+'a' ;

	for(int i=1; i<=lb; i++)
		if('A'<=sb[i] && sb[i]<='Z')
			sb[i] = sb[i]-'A'+'a' ;

//	printf("%s\n%s\n",sa+1,sb+1);

	// flag=1:第一次出现
	int p=-1,cnt=0,flag=1;
	for(int i=1; i<=lb-la+1; i++) {
		int ok=1;
		for(int j=1; j<=la; j++) {
			if(sa[j]!=sb[i+j-1]) {
				ok = 0;
				break;
			}
		}
		if(ok) {
		//	printf("i = %d......\n",i);
			if((i==1 && sb[i+la]==' ')
			    || (i==lb-la && sb[i-1]==' ')
			    || (i>1 && i<lb-la && sb[i-1]==' ' && sb[i+la]==' ')) {
				cnt++;
				if(flag) {
					p = i;
					flag=0;
				}
			}
		}else{
//			for(int j=i;j<lb-la+1; j++) {
//				if(sb[j]==' '){
//					i = j;
//				}
//			}
		}

	}
	if(cnt==0)
		printf("-1");
	else
		printf("%d %d",cnt,p-1);
	return 0;

}

2024/7/9 17:00
加载中...