Не могу решить задачу на Pуthоn
Напишите программу для выделения топота и бряцания из шума. Топотом будем считать числа с нулем в конце, бряцанием – кратные 11, шумом – все остальные.
Формат ввода:
Вводится число, ввод которого служит признаком остановки считывания строк. Затем вводятся строки чисел, записанных через точку с запятой и пробел. Количество чисел в строках одинаково.
Формат вывода:
Из каждого столбца нужно выбрать числа – топот и бряцание – и, если кроме них был еще шум, то вывести эти числа для каждого столбца без повторений в порядке возрастания. Если же в каком-либо столбце не было шума или не было искомых чисел, то вывести HIKE CONTINUES, завершить поиск и вывести числа только из предыдущих столбцов.
Мой код:
StopKey = int(input())
AllNumbers = list()
CountCollection = list()
CountCollection2 = list()
while True:
Numbers = str(input())
if Numbers == str(StopKey):
break
Numbers = Numbers.split("; ")
AllNumbers.append(Numbers)
for elem in range(len(AllNumbers[0])):
for el in range(len(AllNumbers)):
Count = AllNumbers[el][elem]
if (Count[-1] == "0") or (int(Count) % 11 == 0):
CountCollection.append(int(Count))
if (len(CountCollection) >= 1) or (len(CountCollection) < len(AllNumbers)):
CountCollection.sort()
for i in CountCollection:
i = str(i)
CountCollection2.append(i)
print(" ".join(CountCollection2))
CountCollection2 = list()
CountCollection = list()
else:
print("HIKE CONTINUES")
Ввел:
100
198; 61; 46; 121
163; 285; 211; 29
90; 3; 4; 250
247; 102; 165; 99
211; 85; 100; 95
100
Должно было вывести:
HIKE CONTINUES
90 198
У меня вывело:
90 198
100 165
99 121 250
Решите задачу пожалуйста
Ответы (2 шт):
Я бы вот так сделал все (если я правильно понял задачу):
stopKey = input()
data = []
while True:
line = input()
if line == stopKey:
break
data.append(list(map(int, line.split("; "))))
for column_index in range(len(data[0])):
stomping = set(row[column_index] for row in data if row[column_index] % 10 == 0)
rattling = set(row[column_index] for row in data if row[column_index] % 11 == 0)
noise = set(row[column_index] for row in data) - (stomping | rattling)
if len(stomping) == 0 or len(rattling) == 0 or len(noise) == 0:
print("HIKE CONTINUES")
break
else:
print(*sorted(list(stomping)), *sorted(list(rattling)))
видел такую задачу недавно вроде так решается
a = int(input())
b = input()
kol = list()
ans = list()
ans1 = list()
ind = 0
bil = ''
while b != str(a):
kol.append(b.split("; "))
b = input()
for i in range(len(kol[0])):
for j in range(len(kol)):
if int(kol[j][i]) % 10 == 0 or int(kol[j][i]) % 11 == 0 and kol[j][i] not in ans:
ans1.append(int(kol[j][i]))
ans.append(ans1)
ans1 = list()
for i in range(len(ans)):
if ans[i] == list():
ind = i
print("HIKE CONTINUES")
break
ind = i + 1
for i in range(ind):
ans[i] = sorted(ans[i])
for j in range(len(ans[i])):
if str(ans[i][j]) not in bil:
print(ans[i][j], end=" ")
bil = ''.join(str(ans[i][j]))
print()