题目链接:https://ac.nowcoder.com/acm/contest/5666/F
解题思路:
转自https://www.cnblogs.com/fate-/p/13299779.html
不是很理解,反正记住两个字符串a和b,长度分别为p和q,那么比较p+q-gcd(p,q)次,就可以得到a∞ 和b∞ 的字典序大小比较
#include<iostream>
#include<cstdio>
#include<string.h>
#include<string>
using namespace std;
#define ll long long
int len1,len2;
char s[100010],t[100010];
int gcd(int a,int b){
int tmpa=max(a,b);
int tmpb=min(a,b);
return b==0? a:gcd(b,a%b);
}
int main(){
while(~scanf("%s%s",s,t)){
len1=strlen(s);
len2=strlen(t);
int len3=len1+len2-gcd(len1,len2);
int flag=0;
for(int i=0;i<len3;i++){
if(s[i%len1]>t[i%len2]){
flag=1;
break;
}
else if(s[i%len1]==t[i%len2]){
continue;
}
else{
flag=-1;
break;
}
}
if(flag>0)
cout<<">"<<endl;
else if(flag==0)
cout<<"="<<endl;
else
cout<<"<"<<endl;
}
return 0;
}