牛客暑期多校训练营(第一场)F

Infinite String Comparision

题意:多组输入。给你两个字符串,每个字符串可以以自身为单位无限延长, 试问:延长之后的两个字符串字典序大小 

输入:

aa
b
zzz
zz
aba
abaa

输出:

<
=

第三个样例。abaabaaba...与abaaabaaabaa相比字典序 < 

 hint:

数据弱。分别扩充两倍再比较字典序大小就好了。

AC代码: 

#include<bits/stdc++.h>
#define PB push_back
#define PII pair<int,int>
#define PLL pair<long long,long long>
#define FI first
#define SE second
#define mem(a) memset(a,0,sizeof(a))
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const int INF = 0x3f3f3f3f;
const double pi=acos(-1),eps=1e-8;
const LL maxn = 1<<17;
const int mod = 1e9+7;
const int N = 4e5+5;
int main(){
	ios;
	string a,b;
	while(cin>>a>>b){
		//分别扩充两倍 
		a+=a;
		b+=b;
		int l1 = a.length(), l2 = b.length();
		int maxh = max(l1 , l2), flag = 0;
		for(int i = 0 ; i < maxh ; i ++){
			if(a[i % l1] < b[i % l2]){
				flag = 1;
			}else if(a[i % l1] > b[i % l2]){
				flag = 2;
			}
			if(flag)break;
		}
		if(flag){
			if(flag == 1)cout << "<" <<endl;
			else cout << ">" << endl;
		}else cout << "=" << endl;
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43911947/article/details/107323737
今日推荐