当前位置: 首页 > article >正文

数字排列.

题目描述
小明负责公司年会,想出一个趣味游戏:

屏幕给出 1 ~ 9 中任意 4 个不重复的数字,大家以最快时间给出这几个数字可拼成的数字从小到大排列位于第 N 位置的数字,其中 N 为给出数字中最大的(如果不到这么多数字则给出最后一个即可)。

注意:

2 可以当作 5 来使用,5 也可以当作 2 来使用进行数字拼接,且屏幕不能同时给出 2 和 5;
6 可以当作 9 来使用,9 也可以当作 6 来使用进行数字拼接,且屏幕不能同时给出 6 和 9。
如给出:1,4,8,7,则可以拼接的数字为:

1,4,7,8,14,17,18,41,47,48,71,74,78,81,84,87,147,148,178 … (省略后面的数字)

那么第 N (即8)个的数字为 41。

输入描述
输入以逗号分隔的 4 个 int 类型整数的字符串。

输出描述
输出为这几个数字可拼成的数字从小大大排列位于第 N (N为输入数字中最大的数字)位置的数字,

如果输入的数字不在范围内或者有重复,则输出-1。

用例1
输入
1,4,8,7
输出
41
说明
可以构成的数字按从小到大排序为:

1,4,7,8,14,17,18,41,47,48,71,74,78,81,84,87,147,148,178 … (省略后面的数字),

故第8个为41

用例2
输入
2,5,1
输出
-1
说明
2和5不能同时出现

用例3
输入
3,0,9
输出
-1
说明
0不在1到9范围内

用例4
输入
3,9,7,8
输出
39
说明
注意9可以当6使用,所以可以构成的数字按从小到大排序为:3,6,7,8,9,36,37,38,39,63,67,68,73,76,78,79,83 … (省略后面的数字),

故第9个为39
.

nums = list(map(int, input().split(',')))
def judge(nums):
    if len(nums)!=4:
        return False
    if 2 in nums and 5 in nums:
        return False
    if 6 in nums and 9 in nums:
        return False
    for num in nums:
        if num<1 or num>10:
            return False
        if nums.count(num)>1:
            return False
    return  True

def getresult(nums):
    if not judge(nums):
        return -1
    N = max(nums)
    if 2 in nums:
        nums.append(5)
    if 5 in nums:
        nums.append(2)
    if 6 in nums:
        nums.append(9)
    if 9 in nums:
        nums.append(6)
    nums.sort()
    nums = list(set(nums))
    result = []
    for num in nums:
        result.append(num)#加入所有个位数
    for i in range(len(nums)):
        for j in range(len(nums)):
            if i!=j :
                temp=str(nums[i])+str(nums[j])
                if temp!='25' and temp!='52' and temp!='69' and temp!='96':
                    result.append(int(temp))
    #print(result)
    return result[N-1]

print(getresult(nums))



http://www.kler.cn/a/404300.html

相关文章:

  • 七、电机三环控制
  • Spark RDD(弹性分布式数据集)的深度理解
  • 【前端知识】Javascript前端框架Vue入门
  • java: spire.pdf.free 9.12.3 create pdf
  • Sigrity SPEED2000 TDR TDT Simulation模式如何进行时域阻抗仿真分析操作指导-差分信号
  • Kafka 到 Kafka 数据同步
  • MAC借助终端上传jar包到云服务器
  • 【天壤智能-注册安全分析报告-无验证纯IP限制存在误拦截隐患】
  • 2024年亚太地区数学建模竞赛(亚太杯)C题保姆级教程思路分析
  • I.MX6U 裸机开发18.GPT定时器实现高精度延时
  • SQL注入的那些面试题总结
  • 计算机软硬件体系结构
  • vim 一次注释多行 的几种方法
  • RK356x-9:根文件系统复制和打包
  • 39页PDF | 毕马威_数据资产运营白皮书(限免下载)
  • 如何默认VS2019用管理员方式打开
  • 人工智能之机器学习(初步应用部分)数据集、特征工程
  • 量子感知机
  • mc minioclient同步
  • 网络安全审计概述与分类
  • c高级学习笔记
  • 【Linux】冯诺依曼体系结构、操作系统
  • 11.21Pytorch_属性常见转换操作
  • Github 2024-11-18 开源项目周报 Top15
  • shell脚本之while循环和until循环
  • 【ChatGPT】ChatGPT在多领域知识整合中的应用