Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 03.11.2019
Сообщений: 16

Выяснить, является ли вторая последовательность последовательностью первой

03.11.2019, 19:47. Показов 5850. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание.2

Даны две последовательности целых чисел a0,.....,an и b0,.....,bm выяснить является ли вторая последовательность последовательностью первой, то есть можно ли вычеркнуть из первой последовательности некоторые члены так чтобы получилась вторая последовательность
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.11.2019, 19:47
Ответы с готовыми решениями:

Выяснить, является ли вторая последовательность подпоследовательностью первой
Добрый день, уважаемые форумчане. С# изучаю совсем недавно, недавно получил такое задание, пока даже не знаю, как подобраться. Помогите,...

Выяснить, является ли вторая последовательность подпоследовательнстью первой
Люди, помогите пож с задачкой: Даны 2 последовательности x..x и y..y целых чисел. Выяснить, является ли вторая последовательность...

Даны две последовательности , выяснить,является ли вторая последовательность подпоследовательностью первой
Вот такая задача : даны две последовательности x . . x и y . . y целых чисел. Выяснить, является ли вторая последовательность...

15
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 20:27
Думаю так:
1) делаем цикл по второму списку, так как он короче.
2) удаляем из второго списка элемент arr2.pop() и пытаемся удалить этот элемент из первого списка.
2.1) если не получилось, то return False
3) продолжаем, пока второй список не кончится.
4) ...
5) PROFIT!
0
 Аватар для Semen-Semenich
5224 / 3471 / 1173
Регистрация: 21.03.2016
Сообщений: 8,298
03.11.2019, 20:33
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
делаем цикл по второму списку, так как он короче.
в условии ничего про это не сказано

Добавлено через 3 минуты
ну да дошло. мы же будем удалять из первой что бы получилась вторая, отсюда следует что первая должна быть больше
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 20:36
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
что бы получилась вторая,
Не совсем. Получится остаток. То есть те элементы, которые нужно было вычеркнуть. Просто мы подошли к заданию с другого конца.
0
0 / 0 / 0
Регистрация: 03.11.2019
Сообщений: 16
03.11.2019, 20:45  [ТС]
А как мне удалить что-то из большего списка, если я не знаю какой элемент я удалил из меньшего?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 20:55
Знаете:
Python
1
element = arr2.pop()
0
 Аватар для Semen-Semenich
5224 / 3471 / 1173
Регистрация: 21.03.2016
Сообщений: 8,298
03.11.2019, 21:03
Teddimon, можно без удалений. цикл по второму списку получая индекс и сам элемент (enumerate) в теле этого цикла второй цикл по индексам range(начало индекс из первого цикла, длина первого списка) в теле второго цикла условие если элемент из второго списка равен элементу взятому по индексу из первого то плюсуем счетчик и прерываем второй цикл.
сравниваем счетчик и длину второго списка если равны то True
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 21:06
Semen-Semenich, мне кажется это не будет работать.
Во-первых, ищем не вхождения подсписков, а сравниваем элементы.
Во-вторых, элементы могут повторяться в обоих списках. Как иначе узнать, что мы этот элемент уже "пометили"?
0
0 / 0 / 0
Регистрация: 03.11.2019
Сообщений: 16
03.11.2019, 21:07  [ТС]
Я идею понял а реализовать ее не могу, плохое знание языка, можно плз написать ее?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 21:11
Хотя, возможно, я не понял задание, и порядок элементов важен.

Добавлено через 1 минуту
Python
1
2
3
4
5
6
7
arr = [1,2,3,5]
arr2 = [2,3,1]
 
while arr2:
    el = arr2.pop()
    arr.remove(el)
print(arr)
Добавлено через 1 минуту
Как минимум, мы получили элементы, которые нужно вычёркивать из первого списка. Может, пригодиться.
0
0 / 0 / 0
Регистрация: 03.11.2019
Сообщений: 16
03.11.2019, 21:11  [ТС]
Порядок важен
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 21:15
Тогда сдаюсь.
0
 Аватар для Semen-Semenich
5224 / 3471 / 1173
Регистрация: 21.03.2016
Сообщений: 8,298
03.11.2019, 21:30
Рыжий Лис, тут вопрос в том порядок элементов важен или нет. если важен то списки должны быть как то упорядоченны. пока черновой вариант
Python
1
2
3
4
5
6
7
8
9
10
11
list_1 = [1,1,3,5,22,45,7,7,7,8,9,12,24]
list_2 = [1,3,7,12,]
a = 0
len_list_1 = len(list_1)
for i, x in enumerate(list_2):
    for j in range(i,len_list_1):
        if x == list_1[j]:
            a += 1
            break
    
print(a == len(list_2))
если только сравнить что элементы второго списка в полном обьеме есть в первом то сначала списки отсортировать. что оптимальнее через pop() или сортировки я не проверял

Добавлено через 9 минут
Цитата Сообщение от Teddimon Посмотреть сообщение
Порядок важен
не оптимально но все же
Python
1
2
3
4
5
6
7
8
9
10
11
12
list_1 = [1,1,3,5,22,45,7,7,7,8,9,12,24]
list_2 = [7,12,1,3,1]
a = 0
range_list_1 = range(len(list_1))
 
for i, x in enumerate(list_2):
    for j in range_list_1:
        if x == list_1[j]:
            a += 1
            break
    
print(a == len(list_2))
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 21:45
Лучший ответ Сообщение было отмечено Рыжий Лис как решение

Решение

Кажется, я догадался как:
Python
1
2
3
4
5
6
7
8
9
10
11
ls1 = [1,1,3,5,22,45,7,7,7,8,9,12,24]
ls2 = [1,3,7]
 
i1 = 0
i2 = 0
while i2 < len(ls2):
    if ls1[i1] == ls2[i2]:
        i1 += 1
        i2 += 1
        continue
    i1 += 1
Добавлено через 1 минуту
Ещё проще:
Python
1
2
3
4
while i2 < len(ls2):
    if ls1[i1] == ls2[i2]:
        i2 += 1
    i1 += 1
0
0 / 0 / 0
Регистрация: 03.11.2019
Сообщений: 2
03.11.2019, 21:47
Почему нельзя просто проверить является ли множество b подмножеством a?
Python
1
2
3
4
5
a = [1,2,3,4,5,6,]
b = [2,4,6,]
c = [2,4,6,7,]
print(set(a) >= set(b)) # True
print(set(a) >= set(c)) # False
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.11.2019, 21:49
Baikov, нельзя, потому что порядок важен.

Так неправильно:
Python
1
2
3
a = [1,2,3,4,5,6,]
b = [4,6,2]
print(set(a) >= set(b)) # True
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.11.2019, 21:49
Помогаю со студенческими работами здесь

Дана последовательность, выяснить является ли она возрастающей последовательностью простых чисел
Дана последовательность, выяснить является ли она возрастающей последовательностью простых чисел.

Является ли вторая последовательность подпоследовательностью первой?
Доброе время суток! Пожалуйста, подскажите как написать данную программу, вот условие: Даны две последовательности x . . x и y . . y...

Является ли вторая последовательность частью первой
Даны две последовательности целых чисел а1, а2, …, аn и c1, c2, …, ck , n ≥ k. Выяснить, является ли вторая последовательность...

Дана последовательность целых чисел а1, а2, …, an. Выяснить, является ли она симметричной последовательностью простых чисел
Дана последовательность целых чисел а1, а2, …, an. Выяснить, является ли она симметричной последовательностью простых чисел Пытался хотя...

Дана последовательность целых чисел а1, а2, …, an. Выяснить, является ли она симметричной последовательностью простых чисел
Ребят срочно надо&gt;&lt;


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru