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

【刷题】数组拼接(超聚变暑期实习笔试)

一、题目描述

现在有多组整数数组,需要将他们合并成一个新的数组。合并规则是从每个数组中按顺序取固定长度的内容合并到新的数组中,取完的内容会被删除掉。如果改行不足固定长度或者已经为空,则直接取出剩余部分内容放到新数组中,然后继续下一行。

输入描述:

第一行输入每次要固定读取多少长度;

后面的每一行代表一个数组,数组元素用逗号分隔。

输出描述:

合并后的数组,元素用逗号分隔。

实例:

输入:

2
1,2,3
4,5,6,7,8
9,10

输出:

1,2,4,5,9,10,3,6,7,8

二、解题思路

 1.读取输入:每次读取的长度n和用逗号分隔的数组;

2.依次从每个非空数组中取出最多 n 个元素。如果某个数组剩余元素不足 n 个,就取剩余全部。如果某个数组已经为空,则跳过它。

3.当所有数组都为空时,停止取数。

4.将所有依次取出的元素按顺序合并,转换成字符串,并用逗号分隔输出。

三、代码参考

def func1():n = int(input())#每次读取固定的长度narray = []#储存输入的数组while True:try:line = input().strip()#读取第一行并去掉首尾空格if not line:continue#遇到空行跳过arr = line.split(',')#用逗号分割成列表arr = [int(x) for x in arr if x]#转换成整数,并过滤空字符串array.append(arr)except EOFError:breakret = []while any(array):#只要数组不为空就继续循环for arr in array[:]:#遍历array的副本(避免修改影响迭代)if not arr:#如果数组为空就跳过continuetake = min(n,len(arr))#如果不为空,就取出前n个或者剩余所有元素ret.extend(arr[:take])del arr[:take]#删除已经取出的元素print(','.join(map(str,ret)))func1()

http://www.xdnf.cn/news/666793.html

相关文章:

  • MATLAB实现音频参数均衡器(PEQ)
  • 鸿蒙OSUniApp 实现的数字键盘与密码输入框组件#三方框架 #Uniapp
  • 用AxumStatusCode细化Rust Web标准格式响应
  • 动态防御新纪元:AI如何重构DDoS攻防成本格局
  • Spring Boot微服务架构(六):伪装的微服务有哪些问题?
  • npm error Cannot find module ‘negotiator‘ 的处理
  • 从Node.js到Go:如何从NestJS丝滑切换并爱上Sponge框架
  • Siege:开源的 HTTP/FTP 压力测试与基准评估工具!全参数详细教程!Kali Linux教程!
  • deepseek开源资料汇总
  • 34. 自动化测试开发之使用oracle连接池实现oracle数据库操作
  • 鸿蒙OSUniApp 开发的商品筛选器与排序功能#三方框架 #Uniapp
  • mediapipe标注视频姿态关键点
  • LVS 负载均衡群集
  • Reactor和Proactor
  • Docker部署Spark大数据组件
  • 【Java项目实战】智能截图工具V2.0:集成Tesseract OCR实现中英文识别功能完整开发教程
  • 【Qt开发】多元素控件
  • JavaScript性能优化全景指南
  • QT 框架学习笔记
  • Elasticsearch性能优化全解析
  • uni-app(6):Vue3语法基础下
  • Nginx 性能优化全解析:从进程到安全的深度实践
  • 【JavaScript 性能优化方法】
  • 【前端】【Vue3】vue3性能优化总结
  • MySQL 窗口函数深度解析:语法、应用场景与性能优化
  • day 23 机器学习管道(pipeline)
  • 项目启动以及Vue初识
  • Python整合Milvus向量数据库案例实战
  • 通过HIVE SQL获取每个用户的最大连续登录时常
  • 【Opencv+Yolo】Day2_图像处理