質問の説明
整数配列のセットが複数あるため、それらを新しい配列にマージする必要があります。
マージルールでは、各配列から固定長の内容を順番に取り出し、新しい配列にマージします。
内容は削除されます。
行が固定長未満または空の場合、
残りの内容は直接取り出されます。新しい配列に配置され、次の行に進みます。
たとえば、サンプル 1 では、長さ 3 を取得するには、まず最初の行を走査して 2、5、6 を取得し、次に
2 番目の行を走査して 1、7、4 を取得し、次に最初の行にループバックして
7、9 を取得します。 , 5; 2 番目の行を再度トラバースして 3、4 を取得し、
最初の行に戻って 7 を取得し、それらを結合して最終結果を形成します。
説明を入力してください
最初の行は各読み取りの固定長です。20<长度<10
行
目は整数配列の数0<数目<1000
、
3 行3~n
目はマージする必要がある配列です。異なる配列は復帰と改行で区切られ、配列
の内部は配列はカンマで区切られます。100
最大値は要素以下
出力の説明
新しい配列をカンマで区切って出力します。
例1
入力
3
2
2,5,6,7,9,5,7
1,7,4,3,4
出力
2,5,6,1,7,4,7,9,5,3,4,7
例 2
入力
4
3
1,2,3,4,5,6
1,2,3
1,2,3,4
出力
1,2,3,4,1,2,3,1,2,3,4,5,6
コード
# coding:utf-8
import numpy
class Solution:
def arrMerge(self, n, m, arrs):
res = ''
while m > 0:
for i in range(len(arrs)):
arr = arrs[i]
if len(arr) > n-1:
res = res + ','.join(arr[:n])+','
arr = arr[n:]
elif (len(arr) <= n-1) and (len(arr) > 0):
res = res + ','.join(arr)+','
arr = []
m -= 1
elif len(arr) == 0:
m -= 1
arrs[i] = arr
return res[:-1]
if __name__ == "__main__":
n = int(input("请输入目标数组大小:"))
m = int(input("请输入数组数量:"))
arrs = []
for k in range(m):
si = input("请输入数组,用,分割:").split(',')
s = numpy.array(si)
arrs.append(s)
solution = Solution()
print(solution.arrMerge(n, m, arrs))