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

python-绝对值排序(赛氪OJ)

[题目描述]
输入 n 个整数,按照绝对值从大到小排序后输出。保证所有整数的绝对值不同。
输入格式:
输入数据有多组,每组占一行,每行的第一个数字为 n ,接着是 n 个整数, n=0 表示输入数据的结束,不做处理。
输出格式:
对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。

样例输入
3 3 -4 2
4 0 1 2 -3
0
样例输出
-4 3 2

-3 2 1 0
数据范围
对于 100% 的数据,保证 1≤n≤100 。
来源/分类(难度系数:一星)


完整代码展示:
# coding=utf-8
a=[]
while True:
       b=list(map(int,input().split()))
       if b==[0]:
             break
      else:
             b.remove(b[0])
             a.append(b)

c=0
while c<len(a):
       d=a[c]
       e=d[:]
       for i in range(0,len(e)):
            e[i]=abs(e[i])
      e.sort(reverse=True)
      f=[]                                                                                for j in range(0,len(e)):
           for k in range(0,len(d)):
                 if d[k]==e[j] or d[k]==-e[j]:
                       if d[k] not in f:
                            f.append(d[k])                                      sum=""
      for l in range(0,len(f)):
            sum+="{} ".format(f[l])
      print(sum)                                                                  c+=1
代码解释:
a=[] ”,建立一个空列表a。
while True:
         b=list(map(int,input().split()))
         if b==[0]:
               break
        else:
               b.remove(b[0])
               a.append(b)                        
”,让用户循环输入一串每两个数字之间插入一个空格的数组,并将其储存进列表b中。接着判断b是否为[0],如果是,则令循环条件不存在,跳出整个while循环;否则b移除元素b[0]后将其添加进a中。
c=0
 while c<len(a):
        d=a[c]
        e=d[:]
        for i in range(0,len(e)):
              e[i]=abs(e[i])
        e.sort(reverse=True)
        f=[]
        for j in range(0,len(e)):
             for k in range(0,len(d)):
                   if d[k]==e[j] or d[k]==-e[j]:
                         if d[k] not in f:
                               f.append(d[k])
       sum=""
       for l in range(0,len(f)):
             sum+="{} ".format(f[l])
       print(sum)
       c+=1                                                  
”,令循环密码子为c,并将其初始值设为0。当c<len(a)时,令d=a[c],并将列表d复制赋给e。依次遍历列表e中所有元素,并将原元素替换为原元素的绝对值。遍历结束后,对e进行升序排序。建立一个空列表f,遍历列表e和d,查找e中是否有d中相同或相反的元素,如果有且该元素不在列表f中,则将其添加进列表f。建立空字符sum,依次遍历列表f中所有元素,并将其用sum一一连接起来,遍历结束后,打印sum。每循环一次,就令c+1,直至c==len(a),跳出整个while循环。


运行效果展示:

1937e5ebc7544f02807f98ee97523ab5.jpg

2a624e9bb1b34332b734628d74db5fd2.jpg 

             (声明:以上内容均为原创) 

http://www.lryc.cn/news/407123.html

相关文章:

  • 成功者的几个好习惯,你具备了几个
  • centos中zabbix安装、卸载及遇到的问题
  • php编译安装
  • [K8S] K8S资源控制器Controller Manager(4)
  • C#,.NET常见算法
  • KubeSphere介绍及一键安装k8s
  • Spring 系列
  • 基于opencv[python]的人脸检测
  • 配置SSH公钥互信
  • WEB渗透Web突破篇-SQL注入(MSSQL)
  • DAY15
  • pytest结合allure-pytest插件生成测试报告
  • 详细解析用户提交咨询
  • UDP/TCP协议解析
  • 力扣94题(java语言)
  • JavaScript基础入门:构建动态Web世界的基石
  • 01-client-go
  • WebRTC QoS方法十三.2(Jitter延时的计算)
  • PHP进阶:前后端交互、cookie验证、sql与php
  • 优思学院|ANOVA方差分析是什么?如何用EXCEL进行计算?
  • Mindspore框架循环神经网络RNN模型实现情感分类|(三)RNN模型构建
  • 深度解读大语言模型中的Transformer架构
  • 安装好anaconda,打开jupyter notebook,新建 报500错
  • C++20之设计模式:状态模式
  • 数据库安全综合治理方案(可编辑54页PPT)
  • 人工智能:大语言模型提示注入攻击安全风险分析报告下载
  • 【购买源码时有许多需要注意的坑】
  • CAS的三大问题和解决方案
  • EDA和统计分析有什么区别
  • CentOS 7 修改DNS