1 / 1 / 0
Регистрация: 09.04.2015
Сообщений: 21

В списке L из каждой группы подряд идущих равных элементов оставить только один элемент

28.11.2015, 08:47. Показов 1769. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В списке L из каждой группы подряд идущих равных элементов оставить только один элемент
Например, 2 2 1 1 3 3, после введения в программу останется: 2 1 3
Помогите пожалуйста решить задачу!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.11.2015, 08:47
Ответы с готовыми решениями:

В списке L оставить только первое вхождение группы одинаковых элементов
Здравствуйте. Помогите пожалуйста решить задачу: В списке L оставить только первое вхождение группы одинаковых элементов.

Замена в исходном списке двух подряд идущих одинаковых элементов одним
Определите функцию, заменяющую в исходном списке два подряд идущих одинаковых элемента одним. Как это сделать? Добавлено через 41...

В списке L из каждой группы идущих подряд равных элементов оставить только один
опишите программу которая в списке L из каждой группы идущих подряд равных элементов оставляет только один

5
 Аватар для _sg
4706 / 4401 / 380
Регистрация: 12.05.2012
Сообщений: 3,100
28.11.2015, 10:18
Lisp
1
2
3
4
5
6
7
(defun compress (w &optional b)
  (cond ((null w) nil)
        ((equal (car w) b) (compress (cdr w) b))
        ((cons (car w) (compress (cdr w) (car w))))))
 
> (compress '(a a b c c c d e e))
(A B C D E)
Добавлено через 41 секунду
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
(defun compress (w)
  (cond ((null w) nil)
        ((equal (car w) (cadr w)) (compress (cdr w)))
        ((cons (car w)
               (labels ((press (w b)
                          (cond ((null w) nil)
                                ((equal (car w) b) (press (cdr w) b))
                                ((cons (car w)
                                       (press (cdr w) (car w)))))))
                 (press (cdr w) nil))))))
 
> (compress '(nil nil nil a a b c nil nil nil c c d e e nil nil nil))
(NIL A B C NIL C D E NIL)
Добавлено через 19 секунд
Lisp
1
2
3
4
5
6
7
8
9
(defun compress (w &optional b f)
  (cond ((null w) nil)
        (f (if (equal (car w) b)
               (compress (cdr w) b t)
               (cons (car w) (compress (cdr w) (car w) t))))
        ((cons (car w) (compress (cdr w) (car w) t)))))
 
> (compress '(nil nil nil a a b c nil nil nil c c d e e nil nil nil))
(NIL A B C NIL C D E NIL)
Добавлено через 18 секунд
Lisp
1
2
3
4
5
6
7
(defun compress (w &optional b f)
  (cond ((null w) nil)
        ((and f (equal (car w) b)) (compress (cdr w) b t))
        ((cons (car w) (compress (cdr w) (car w) t)))))
 
> (compress '(nil nil nil a a b c nil nil nil c c d e e nil nil nil))
(NIL A B C NIL C D E NIL)
Добавлено через 57 минут
Lisp
1
2
3
4
5
6
7
(defun sine-adjacent (w &optional b)
  (cond ((null w) nil)
        ((eq b (car w)) (sine-adjacent (cdr w) b))
        ((cons (car w) (sine-adjacent (cdr w) (car w))))))
 
> (sine-adjacent '(1 2 3 3 4 5 4 4 3 1 1 1))
(1 2 3 4 5 4 3 1)
Добавлено через 14 секунд
Lisp
1
2
3
4
5
6
7
8
(defun sine-adjacent (w &optional b)
  (when w (if (eq b (car w))
              (sine-adjacent (cdr w) b)
              (cons (car w)
                    (sine-adjacent (cdr w) (car w))))))
 
> (sine-adjacent '(1 2 3 3 4 5 4 4 3 1 1 1))
(1 2 3 4 5 4 3 1)
Добавлено через 16 секунд
Lisp
1
2
3
4
5
6
7
defun sine-adjacent (w &optional b ac)
  (cond ((null w) (reverse ac))
        ((eq b (car w)) (sine-adjacent (cdr w) b ac))
        ((sine-adjacent (cdr w) (car w) (cons (car w) ac)))))
 
> (sine-adjacent '(1 2 3 3 4 5 4 4 3 1 1 1))
(1 2 3 4 5 4 3 1)
Добавлено через 27 секунд
Lisp
1
2
3
4
5
6
7
(defun sine-adjacent (w &optional ac)
  (cond ((null w) (reverse ac))
        ((eq (car w) (cadr w)) (sine-adjacent (cdr w) ac))
        ((sine-adjacent (cdr w) (cons (car w) ac)))))
 
> (sine-adjacent '(1 2 3 3 4 5 4 4 3 1 1 1))
(1 2 3 4 5 4 3 1)
Добавлено через 28 секунд
Lisp
1
2
3
4
5
6
7
8
(defun sine-adjacent (w)
  (when w (if (eq (car w) (cadr w))
              (sine-adjacent (cdr w))
              (cons (car w)
                    (sine-adjacent (cdr w))))))
 
> (sine-adjacent '(1 2 3 3 4 5 4 4 3 1 1 1))
(1 2 3 4 5 4 3 1)
Добавлено через 5 минут
Lisp
1
2
3
4
5
6
7
8
(defun sine-adjacent (w)
  (cons (car w)
        (loop for a in w
              for b in (cdr w)
              unless (equalp a b) collect b)))
 
> (sine-adjacent '(1 2 3 3 4 5 4 4 3 1 1 1))
(1 2 3 4 5 4 3 1)
2
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
28.11.2015, 17:20
Lisp
1
2
3
4
5
;; racket-lang.org
(define (foo lst)
  (cons (first lst)
        (for/list ((i lst) (j (rest lst)) #:unless (eq? i j))
          j)))
3
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38006 / 21038 / 4301
Регистрация: 12.02.2012
Сообщений: 34,600
Записей в блоге: 14
28.11.2015, 22:18
HomeLisp, iter:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(defun task (lst)
 (let ((res nil)) 
  (iter (for i in lst) (for j in (cdr lst)) 
     (unless (eq i j) (collecting i into res))) 
  (append res (last lst))))
 
==> task
 
(task '(1 2 3 3 4 5 4 4 3))
 
==> (1 2 3 4 5 4 3)
 
(task '(1 2 3 3 4 5 4 4 3 1 1 1))
 
==> (1 2 3 4 5 4 3 1)
2
1 / 1 / 0
Регистрация: 09.04.2015
Сообщений: 21
01.12.2015, 19:08  [ТС]
Извините, а что есть &optional ?

Добавлено через 2 минуты
Извините, а как это же написать с помощью простых операторов типа cdr, car и т.д. ?
Без итераций, фор, анлесс и аппенд.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38006 / 21038 / 4301
Регистрация: 12.02.2012
Сообщений: 34,600
Записей в блоге: 14
02.12.2015, 11:58
jack_sparrow228, тебе же _sg кучу таких решений предложил.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2015, 11:58
Помогаю со студенческими работами здесь

В списке L с каждой группы подряд равных элементов оставить только один элемент
Опишите программу , которая в списке L с каждой группы подряд равных элементов оставляет только один элемент.

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

Из каждой группы подряд идущих элементов оставить только один
Дан список строк. Написать подпрограмму, которая из каждой группы подряд идущих элементов оставляет только один. заранее спасибо кто...

Из каждой группы подряд идущих элементов оставить только один
Дан список строк. Написать подпрограмму, которая из каждой группы подряд идущих элементов оставляет только один.

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru