Задать вопрос
@Spyderden

Как написать код, который будет выносить дубли в конец списка?

Есть список, из которого надо выносить дубли. После чего из вынесенных дублей выносить ещё дубли, если они есть. Так делать до тех пор, пока они не закончатся. При этом перед каждым "мини-списком" дублей надо, чтобы код ставил пустую строку.
Т.е. у нас есть список:

1
2
3
4
5
4
5
3
9
3

Код возвращает:

1
2
3
4
5
9

4
5
3

3
  • Вопрос задан
  • 160 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
@Zzzz9
s=[1,2,3,4,5,4,5,3,9,3]
dch={}
res=[]

for i in list(set(s)):
    dch[i]=s.count(i)

for k in dch:
    for n in range(dch[k]):
        if len(res)<=n:
            res.append([])
        res[n].append(k)
        
for el in res:
    for c in el:
        print(c)
    print()

1
2
3
4
5
9

3
4
5

3
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Alexandroppolus
@Alexandroppolus
кодир
js

const func = (arr) => {
    if (!arr) {return [];}

    const counts = new Map();
    const r = [];

    arr.forEach((x) => {
        const count = counts.get(x) || 0;
        if (r.length === count) {
            r.push([]);
        }
        r[count].push(x);
        counts.set(x, count + 1);
    });

    return r;
}
Ответ написан
Комментировать
dollar
@dollar
Делай добро и бросай его в воду.
Если без оптимизаций, то как угодно, это крайне простая задача для начинающего программиста. Если же с оптимизациями, то зависит от того, что именно нужно оптимизировать - например, память или вычисления.

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

Помните, что самостоятельно решенные задачи в 10 раз ценнее для обучения, чем те, ответ которых вы подсмотрели. Поэтому к подсматриванию стоит прибегать в крайних случаях, чтобы не буксовать, и с четким пониманием того, что именно у вас не получается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы