70 8 9 10超时 怎么优化一下 求问
查看原帖
70 8 9 10超时 怎么优化一下 求问
804490
qqqqewdwqew楼主2022/10/14 14:52
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void zhuan(char a[]){
	for(int i=0;a[i]!='\0';i++){
		if(a[i]>='a'&&a[i]<='z'){
			a[i]-=32;
		}
	}
}
int main (){
	char a[11],A[10000000];
	int sum=0,first=0,key,I,cnt=0;
//	char *p;
//	p=A;
	gets(a);
	gets(A);
	zhuan(a);
	zhuan(A);
	for(int i=0,len,k;i<(int)strlen(A);){
		I=i;
		key=0;
		len=0;
		for(k=i;A[k]!='\0'&&A[k]!=' ';k++){
			len++;
		}
		if((int)strlen(a)==len){
		for(int j=0;j<(int)strlen(a);j++,I++){
			if(A[I]==a[j]){
				key++;
			}
		}
		if(key==(int)strlen(a)&&cnt==0){
			first=I-strlen(a);
			cnt++;
		}
		if(key==(int)strlen(a)){
			sum++;
		}
	    }
	    i=k+1;
	}
	if(sum>0){
	printf("%d %d",sum,first);
	}
	else printf("-1");
}
2022/10/14 14:52
加载中...