当前位置: 首页 > 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()

相关文章:

  • GitCode镜像仓库批量下载开发实录
  • 一,关键字class和typename的区别
  • 线代第四章线性方程组第二节:线性方程组有解判断
  • 模型协同构建智能流程体
  • linux kernel 内存回收水位线调整方法
  • 《独立开发工具 • 半月刊》 第 003 期
  • java每日精进 5.27【分布式锁】
  • [网页五子棋][用户模块]客户端开发(登录功能和注册功能)
  • 《计算机组成原理》第 3 章 - 系统总线
  • 2025年- H54-Lc162--437. 路径总和 III(递归[回溯]OR深搜)--Java版
  • 24 数组基础与应用详解:定义(静态/VLA)、初始化、访问(有效/越界/内存调试)、遍历、大小端字节序
  • C++23:关键特性与最新进展深度解析
  • DAY9 热力图和箱线图的绘制
  • 翻转二叉树
  • 【基于STM32的新能源汽车智能循迹系统开发全解析】
  • React---day2
  • 软件同步机制-Peterson解决方案 简单讲解
  • day38 python Dataset和Dataloader
  • SSM整合:Spring+SpringMVC+MyBatis完美融合实战指南
  • 基于大模型的慢性胃炎全周期预测与诊疗方案研究报告
  • 天津做网站的公司怎么样/深圳网络公司推广平台
  • 随州网站建设哪家便宜/近三天发生的大事
  • 网站建设开发合同书/百度合作平台
  • 携程旅行网站内容的建设/营销型企业网站有哪些平台
  • 华为官方网站专卖店/营销网站设计
  • 做网站哪个平台好/搜狗网址