1 条题解
-
2赵青海 (huhe) LV 7 SU @ 2021-8-7 21:01:05
C++ :
#include<bits/stdc++.h> using namespace std; const int N=1e6+10; char str1[N<<1],str2[N<<1]; int n; int get_min(char *s) { int i=0,j=1; while(i<n&&j<n) { int k=0; while(s[i+k]==s[j+k]&&k<n) k++; if(k==n) break; if(s[i+k]<s[j+k]) j+=k+1; else i+=k+1; if(i==j) i++; } return min(i,j); } int main() { cin>>str1>>str2; n=strlen(str1); memcpy(str1+n,str1,n); memcpy(str2+n,str2,n); int s1=get_min(str1); int s2=get_min(str2); str1[s1+n]='\0'; str2[s2+n]='\0'; if(!strcmp(str1+s1,str2+s2)) cout<<"Yes"<<endl<<str1+s1<<endl; else cout<<"No"<<endl; return 0; }
- 1
信息
- ID
- 69
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 51
- 已通过
- 46
- 上传者