本地跑测试点没问题,为什么交上去会出错呢
查看原帖
本地跑测试点没问题,为什么交上去会出错呢
1401422
Steekee_012楼主2024/10/25 23:16

下面是代码,思路是遍历同时向后出发逐字比较,没调什么函数

#include<iostream>
#include<cstdio>
#include<string>
#include<cmath>
using namespace std;

char lower(char &c){
	if('A'<=c && c<='Z') c+=32;
	return c;
}

int main()
{
	string tar, s;
	int num=0, ad;
	getline(cin,tar);
	getline(cin,s);
	
	if (tar.size()==1){
		char ch=lower(tar[0]);
		for (int i=0; i<s.size(); i++){
			if (ch==lower(s[i])) num++;
			if (num==1) ad=i;
		}
		
		if (num==0) printf("-1\n");
		else printf("%d %d\n",num,ad);
		return 0;
	}
	
	for (int i=0; i<tar.size(); i++)
	{
		tar[i]=lower(tar[i]);
	}
	
	for (int idx=0; idx<s.size(); idx++)
	{
		if (s[idx]!=' ')
		{
			int idx_s=idx, idx_t=0, match=0;
			while (lower(s[idx_s])==tar[idx_t])
			{
				match++;
				idx_s++, idx_t++;
			}
			if (match==tar.size())
			{
				num++;
				if (num==1) ad=idx;
			}
	}
}
	if (num==0) printf("-1\n");
	else printf("%d %d\n",num,ad);
	
	return 0;
}

这是下载的错误输入输出:
error in:
u
tIXHUguyz PZYAJL BIv NAPoemaJ aTF LOvhV m s LSa n xDn mQnO T ettIq T AL fG B Xme t fct U tQ d
error out:
1 92
这是我本地用error in跑出的结果,人工检验下来是对的:
3 5
这个问题困扰了蒟蒻很久,希望路过大佬能指点一二ww

2024/10/25 23:16
加载中...