博客
关于我
ny540 奇怪的排序 简单题
阅读量:805 次
发布时间:2023-02-17

本文共 1134 字,大约阅读时间需要 3 分钟。

Bill机器人对自然数的理解与人类不同,它从右往左读数。例如,它会将123理解为321。现在,给定两个数A和B,我们需要生成[A, B]区间中的所有数,并按照Bill的规则排序。

首先,理解Bill的排序规则。Bill从右到左读取数字,导致它对数字的比较基于数字反转后的值。例如,23变成32,15变成51,Bill认为15大于23,因为51 > 32。

接下来,如何模拟Bill的排序?我们需要对每个数字生成反转后的值,并按这些值排序。例如,数字10反转后是01,即1,数字9反转后是9,数字12反转后是21。因此,排序将基于反转后的数值。

解决步骤:

  • 读取输入,获取测试用例数量N。
  • 对于每个测试用例,读取A和B。
  • 生成区间[A, B]的所有数字。
  • 对每个数字生成反转后的键。
  • 根据反转后的键对数字排序。
  • 输出排序后的数字。
  • 编写代码时,需要考虑如何高效生成反转键。由于区间长度最多为51,可以直接生成列表并用反转键排序。

    Python实现:

  • 读取N。
  • 循环读取每个A和B。
  • 生成从A到B的数字列表。
  • 定义函数生成反转键。
  • 排序列表,使用反转键作为排序依据。
  • 输出排序后的数字。
  • 测试样例:输入:28 1522 39区间数字:28, 29, 30, ..., 39反转键:82, 92, 03, 13, 14, ..., 93排序后:10, 8, 9, 11, 12, 13, 14, 1530, 31, 22, 32, 23, 33, 24, 34, 25, 35, 26, 36, 27, 37, 28, 38, 29, 39

    最终代码:

    import sysdef reverse_num(x):    res = 0    while x > 0:        res = res * 10 + x % 10        x = x // 10    return resdef main():    n = int(sys.stdin.readline())    for _ in range(n):        a, b = map(int, sys.stdin.readline().split())        nums = list(range(a, b+1))        nums.sort(key=reverse_num)        print(' '.join(map(str, nums)))if __name__ == "__main__":    main()

    输出:10 8 9 11 12 13 14 1530 31 22 32 23 33 24 34 25 35 26 36 27 37 28 38 29 39

    转载地址:http://qznfk.baihongyu.com/

    你可能感兴趣的文章
    NLP 基于kashgari和BERT实现中文命名实体识别(NER)
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
    查看>>
    NR,NF,FNR
    查看>>
    nrf开发笔记一开发软件
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    nullnullHuge Pages
    查看>>
    numpy 用法
    查看>>
    Numpy如何使用np.umprod重写range函数中i的python
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
    查看>>
    OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
    查看>>
    OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
    查看>>
    OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>
    OAuth2.0_授权服务配置_令牌服务和令牌端点配置_Spring Security OAuth2.0认证授权---springcloud工作笔记143
    查看>>
    OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142
    查看>>
    OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
    查看>>
    OAuth2.0_授权服务配置_资源服务测试_Spring Security OAuth2.0认证授权---springcloud工作笔记146
    查看>>