描述
给定一个包含 n 个整数的数组 A。您必须创建一个给定整数的队列和堆栈。队列应仅包含素数,堆栈应仅包含合数。数组中的所有数字都是 。形成堆栈和队列的规则是您应该能够使用弹出和出队操作生成数组。注:请仔细阅读本说明
假设数组 A 包含 5 个整数: 7 , 21 , 18 , 3 , 12 ,那么队列和堆栈的内容将为: 队列 : 7 , 3 堆栈 : 12 , 18 , 21 现在,如果您遵循堆栈和队列的规则,那么您会发现可以使用堆栈的弹出操作和队列的出列操作来生成数组,如下所示:
dequeue from queue : 7
pop from stack : 7 , 21
pop from stack : 7 , 21 , 18
dequeue from queue : 7 , 21 , 18 , 3
pop from stack : 7 , 21 , 18 , 3 , 12
因此,对于每个数组 A,您必须在第一行中打印队列的内容,在第二行中打印堆栈的内容。
输入格式 第一行包含一个整数 n 作为输入,表示数组中整数的总数。下一行包含 n 个空格分隔的整数,表示数组 A 的元素。您的输出应打印两个 array ,每行一个。第一行应该是队列的内容,第二行应该是堆栈的内容。
输出格式 第一行打印队列的内容,第二行打印堆栈的内容。
样本输入
5
7 21 18 3 12
样本输出
7 3
12 18 21
我的代码
backwas = input()
num1 = list(map(int, input().split()))
dic = {}
for num in num1:
output = []
for i in range(2,num+1):
if num%i == 0:
output.append(i)
for item in set(output):
output1 = list(set(output))
dic[num] = output1
prime = []
comp = []
for num in num1:
list1 = []
list1 = list(dic[num])
if len(list1) != 1:
comp.append(str(num))
else:
prime.append(str(num))
print(" ".join(prime))
print(" ".join(comp))
我的代码有问题
如果你读得正确,你会立即注意到这个问题的困难部分是以正确的顺序创建两个列表,也就是说,当对它们进行一些操作时,它们会返回原始列表。我的代码无法做到这一点。我应该如何解决这个问题?
呼啦一阵风
蝴蝶刀刀
相关分类