求助,只能过三个测试点,样例输出是-1
查看原帖
求助,只能过三个测试点,样例输出是-1
223333
propitious楼主2024/1/28 15:39
#include<bits/stdc++.h>
using namespace std;
void reserve(char p[], int len) 
{
    for(int i = 0; i < len; i++)
    if(p[i] <= 'z' && p[i] >= 'a') 
	p[i] -= 32;
}
int main()
{
	char a[105],b[105];
	fgets(a,sizeof(a),stdin);
	fgets(b,sizeof(a),stdin);
	int c[102];
	int num=0,m=0;
	int la=strlen(a),lb=strlen(b);
	reserve(a,la),reserve(b,lb);
	for(int i=0,j=0;i<lb;i++)
	{
		if(a[j]==b[i]&&b[i]!=' ')
		{
			j++;
			if(j==la&&(b[i+1]==' '||b[i-j]==' '))
			{
				if(b[i-j]>='A'&&b[i-j]<='Z') continue;
				if(b[i+1]>='A'&&b[i+1]<='Z') continue;
		    	c[m]=i-j+1;
		    	m++; 
		    	num++;
	    	}
	    	continue;
		}
		if(a[j]!=b[i]) j=0;
	}
	
    if(num>0) cout<<num<<" "<<c[0];
    if(num==0) cout<<"-1";
} 
2024/1/28 15:39
加载中...