Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 31.10.2019
Сообщений: 5
1

Задача из яндекс контеста, удаление дубликатов

19.02.2024, 14:59. Показов 949. Ответов 2

Author24 — интернет-сервис помощи студентам
Ребят привет !

Немного подзавис на задачке удаления дубликатов из яндекс контеста


Получился такой код, который не проходит тесты, но что поменять мысли кончились...
Понимаю что количество символов подчеркивания надо добалять исходя из разницы между длиной массива и длиной списка уникальных значений.
Need help, please!

Задача:
Массив отсортирован в порядке возрастания: значения идут от меньшего к большему. В массиве могут быть дублирующиеся значения, ведь в разных пробах могут встречаться одни и те же горные породы.

Ваша задача — написать программу, удаляющую дубликаты из этого массива: каждый элемент должен встречаться в массиве только один раз. При этом относительный порядок элементов должен остаться прежним.

Дублирующие значения нужно заменить на символ подчёркивания.

После выполнения преобразований массив должен остаться такого же размера, как и был. В начале массива должны находиться уникальные элементы, а после них — элементы, содержащие символ подчёркивания. Эти элементы должны быть строго в конце массива, не между числами.

Формат ввода

В первой строке записано целое число n — это длина массива, переданного во второй строке.

Во второй строке записано n натуральных чисел, разделённых пробелами.

Формат вывода

Уникальные числа из исходного массива по возрастанию и символы подчёркивания. Элементы должны быть разделены пробелами. Общее количество элементов должно быть равно n.


Python
1
2
3
4
5
6
7
8
9
10
11
def delete_duplicate (arr):
    res = [] # создаем новый пустой список, в который будем добавлять значения
    for i in arr: # пробегаемся по нему циклом for
        if i in arr:
            i = '_'
        elif res.append(i):
            return res
 
if __name__ == '__main__':
    array = list(map(int, input().split()))   
    print(delete_duplicate(array))
Миниатюры
Задача из яндекс контеста, удаление дубликатов  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2024, 14:59
Ответы с готовыми решениями:

аналог яндекс контеста для VBA
Добрый день, товарищи. Обращаюсь к Вам с вопросом: никто не знает аналог яндекс контестов с...

Задача удаление дубликатов из 2ух столбцов
задача: есть столбец А на Лист 1, в него поочередно пишутся значения "выбытие" есть Лист 3 , где...

Задача о строке. Удаление дубликатов слов
В строке символов определить количество повторений каждого слова и удалить дубликаты слов.Слова ...

Задача из контеста
Каждое число последовательности не меньше -20000000 и не больше 20000000. Всего...

2
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
17583 / 10333 / 2823
Регистрация: 21.10.2017
Сообщений: 22,406
19.02.2024, 16:46 2
Лучший ответ Сообщение было отмечено Executor7 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
lst = [0, 0, 1, 1, 1, 2, 2, 3, 3, 4]
cnt = 0
res = lst[:1]
for i in range(1, len(lst)):
    if lst[i - 1] != lst[i]:
        res.append(lst[i])
    else:
        cnt += 1
res.extend('_' * cnt)
print(*res)
3
3618 / 1830 / 592
Регистрация: 21.11.2021
Сообщений: 3,585
19.02.2024, 18:27 3
Лучший ответ Сообщение было отмечено Executor7 как решение

Решение

Ну или так:
Python
1
2
3
arr = [0, 0, 1, 1, 1, 2, 2, 3, 3, 4]
res = sorted(se := set(arr)) + ['_']*(len(arr)-len(se))
print(*res)
2
19.02.2024, 18:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2024, 18:27
Помогаю со студенческими работами здесь

Работа с массивом, удаление пустых ячеек со сдвигом влево, удаление дубликатов в массиве
Имеется рабочая область (E10:T40), весь процесс форматирования таблицы выполняется в этой границе. ...

Удаление дубликатов + ассинхронное удаление из другой таблицы
Есть две таблицы tbl_content : id, title tbl_pics : id, picname 1. Нужно удалить дубликаты...

Удаление дубликатов
Есть таблица в DataGridview с 3 столбцами. Как сделать удаление повторяющихся строк(ячейки равны...

Удаление дубликатов
namespace ConsoleApp3 { class Program { static void Main(string args) ...

Удаление дубликатов
Здравствуйте. В SQL-запросах, особо не силен. Прошу вашей помощи. Есть не маленькая база данных. В...

Удаление дубликатов
Как удалить из базы дубликаты, т.е. primati key у них отличаются, а отстальный данные совпадают?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru