链接:https://ac.nowcoder.com/acm/contest/5666/F
来源:牛客网
题目描述:
For a string x, Bobo defines x∞=xxx…, which is x repeats for infinite times, resulting in a string of infinite length.
Bobo has two strings a and b. Find out the result comparing a∞ and b∞ in lexicographical order.
You can refer the wiki page for further information of Lexicographical Order.
输入描述:
The input consists of several test cases terminated by end-of-file.
The first line of each test case contains a string a, and the second line contains a string b.
- 1≤∣a∣,∣b∣≤1e5
- a, b consists of lower case letters.
- The total length of input strings does not exceed 2×1e6.
输出描述:
For each test case, print "=" (without quotes) if a∞=b∞. Otherwise, print "<" if a∞<b ∞, or ">" if a∞>b∞.
solution:
题意:给你两个字符串,字符串可以进行无限次循环,比较两个字符串的大小
如果两个字符串长度不一样的话,比较最长字符串的两倍就可以得出两个字符串的大小了
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
char a[100005],b[100005];
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
int main()
{
while(~scanf("%s%s",a,b))
{
ll len1=strlen(a),len2=strlen(b);
int maxn=2*max(len1,len2);
int flag=0;
int i=0;
while(maxn--)
{
if(a[i%len1]==b[i%len2]){i++;continue;}
if(a[i%len1]<b[i%len2])
flag=1;
else
flag=2;
break;
}
if(flag==0)printf("=\n");
else if(flag==1)printf("<\n");
else printf(">\n");
}
}


京公网安备 11010502036488号