求助!敲2节课了;后面的全RE
查看原帖
求助!敲2节课了;后面的全RE
1109463
godess楼主2024/3/27 17:38
#include<iostream>
#include<string>
using namespace std;
const int p=13;
unsigned long long a[100001],b[100001];
bool check(string s){
	int len=s.length();
	int m=len/2;
	string s1=s.substr(0,m),s2=s.substr(m);
	for(int i=0;i<s1.size();i++)a[i+1]=a[i]*p+s1[i];
	for(int i=0;i<s2.size();i++)b[i+1]=b[i]*p+s2[i];
	if(a[s1.size()]==b[s2.size()])return true;
	else return false;
}
int main(){
	int n,cnt=0;
	cin>>n;
	string str,s;
	cin>>str;
	if(n%2==0){cout<<"NOT POSSIBLE";return 0;}
 for(int i=0;i<n;i++){
		string x=str.substr(i,1);
		str.erase(i,1);
		if(check(str)){s=str.substr(0,str.length()/2);cnt++;}
		str.insert(i,x);
		if(cnt==2){cout<<"NOT UNIQUE";return 0;}
	}if(cnt==1)cout<<s;
	else cout<<"NOT POSSIBLE";
} 
2024/3/27 17:38
加载中...