求助
  • 板块CF39J Spelling Check
  • 楼主dxt_
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/22 10:13
  • 上次更新2024/7/22 11:06:26
查看原帖
求助
542199
dxt_楼主2024/7/22 10:13

用的是这篇文章的思路,并且发现且修正了这篇文章的hack:asss ass

正常应该输出3 2 3 4 ,这篇文章输出的是2 2 3

并修正了该处错误,那么为什么没修这个错误之前ac,修了之后反而wa了呢?

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int flagleft,flagright,sum;
string s1,s2;
int main(){
	cin>>s1;
	cin>>s2;
	int len1=s1.size(),len2=s2.size();
	flagleft=flagright=-1;
	for(int i=0;i<len1;++i){
		if(s1[i+sum]!=s2[i]) sum++,flagleft=flagright=i;
		if(sum==2){
			cout<<"0";return 0;
		}
	}
	if(sum==1||sum==0){
		if(sum==0) ++sum;
		while(flagleft!=0&&s1[flagleft]==s1[flagleft-1]) flagleft--,sum++;
		while(flagright!=len1&&s1[flagright]==s1[flagright+1]) flagright++,sum++;
		cout<<sum<<endl;
		for(int i=flagleft;i<=flagright;++i){
			cout<<i+1<<" ";
		}
		return 0;
	}
} 
2024/7/22 10:13
加载中...