Infinite String Comparision 牛客网

链接:https://ac.nowcoder.com/acm/contest/5666/F
来源:牛客网
For a string xxx, Bobo defines x∞=xxx…x, which is xxx 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∣≤105
a, b consists of lower case letters.
The total length of input strings does not exceed 2×106
输出描述:
For each test case, print “=” (without quotes) if a∞=b∞ . Otherwise, print “<” if a∞<b∞, or “>” if a∞>b∞

示例1
输入

aa
b
zzz
zz
aba
abaa

输出

<
=
>

题目大意:有a,b字符串比较,比较a∞,b∞字符串大小

#include<iostream>
#include<cstdio>
#include<string>
#include<cmath>
using namespace std;
int main()
{
    int i,j,c;
    string a,b;
    while(cin>>a>>b)
    {
        int y=2*max(a.size(),b.size()); //!!!
        int flag = 1;

        for(i=0,j=0,c=0; ;i++,j++,c++){
            if(i>=a.size()){
                i = 0;
            }
            if(j>=b.size())
                j = 0;
            if(a[i]>b[j]){
                flag = 2;
                break;
            }
            else if(a[i]<b[j]){
                flag = 0;
                break;
            }
            if(c>=y)break;


        }

        if(flag==0){
            printf("<\n");
        }
        else if(flag==2)
            printf(">\n");
        else if(flag==1)
            printf("=\n");
    }
    return 0;
}

另一种方法,
来源于
https://blog.csdn.net/BeNoble_/article/details/107308782

#include <bits/stdc++.h>
using namespace std;
string s, t;
int main() {
    while (cin >> s >> t)
        if (s + t < t + s)
            puts("<");
        else if (s + t > t + s)
            puts(">");
        else
            puts("=");
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葛济维的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值