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

Слова для кадавра

05.02.2021, 23:40. Показов 28150. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Модель Человека, неудовлетворенного желудочно, а именно кадавр по образу и подобию профессора Выбегалло, кушал. Не обращая ни на кого специального внимания, он зачерпывал отруби широкой ладонью, уминал их пальцами, как плов, и образовавшийся комок отправлял в ротовое отверстие, обильно посыпая крошками бороду. При этом он хрустел, чмокал, хрюкал, всхрапывал, склонял голову набок и жмурился, словно от огромного наслаждения. Время от времени, не переставая глотать и давиться, он приходил в волнение, хватал за края чан с отрубями и ведра с обратом, стоявшие рядом с ним на полу, и каждый раз придвигал их к себе все ближе и ближе.

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

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

Обозначения в шаблоне: 1 — не гласная, 0 — гласная, ? — строго одна любая буква, * — любое количество любых букв, в том числе ни одной. Гарантируется, что * в шаблоне не более одной.

Формат ввода
Строка — шаблон.

Затем строки слов для проверки. Признак окончания ввода — пустая строка.

Формат вывода
Выводятся только те слова, которые соответствуют шаблону. По одному в строке, в том же порядке, в котором вводились.

Если таких слов не оказалось, вывести Есть нечего, значить!

Пример 1
Ввод Вывод
10?010
молоко
отруби
обрат
селёдка
буханка
головы

молоко
головы
Пример 2
Ввод Вывод
1010*0
отруби
обрат
сельдь
хлеб
грузди

Есть нечего, значить!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.02.2021, 23:40
Ответы с готовыми решениями:

Слова для кадавра

Слова для кадавра
Напишите программу, которая определит слова, подходящие под некоторый шаблон словообразования, которым в данный момент владеет кадавр. ...

В строке записаны слова слова и целые десятичные числа. Для записи слов исп большие и малые буквы, длинна слова не более 16 букв.
В строке записаны слова слова и целые десятичные числа. Для записи слов исп большие и малые буквы, длинна слова не более 16 букв....

41
 Аватар для Semen-Semenich
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,314
16.02.2021, 20:18
Студворк — интернет-сервис помощи студентам
Matrix3007, засада. расширяем условие
Python
1
2
3
4
5
6
7
8
    if '*' in template: # если * есть в шаблоне 
        ind1, ind2 = map(len,template.split('*'))
        if not ind2:
            res  = res[:ind1]
        elif not ind1:
            res  = res[-(ind2+1):]
        else:
            res  = res[:ind1] + res[-(ind2+1):]
но что то много условий.
0
 Аватар для Matrix3007
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
16.02.2021, 20:43
Semen-Semenich,
10*1
соль

Есть нечего, значить!

Добавлено через 2 минуты
У меня, кстати, тоже неправильно) Сейчас посмотрим, что не так.

Добавлено через 18 минут
Ну в общем вот
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
vowels = ["а", "е", "о", "и", "э", "ы", "я", "ю", "е", "ё"]
consonants = ["б", "в", "г", "д", "ж", "з", "й", "к", "л", "м", "н", "п", "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ"]
signs = ["ь", "ъ"]
alls=[vowels, consonants, signs]
types={"0":alls[:1], "1":alls[-2:], "?":alls}
m=input().split("*")
w=[]
d=" "
 
def check(word,mask):
    p=True
    try:
        for i in range(len(mask)):
            pp=False
            for j in types[mask[i]]:
                if word[i] in j:
                    pp=True
                    break
            if not pp:
                return False
    except:
        return False
    return p
 
while d != "":
    d=input()
    w.append(d)
 
r=m[0]
rl=len(r)
rez=[check(i, r) for i in w]
wl=len(w)
if len(m)-1:
    r=list(reversed(m[1]))
    rl=len(r)
    rez=[rez[i]*check(list(reversed(w[i])),r) for i in range(wl)]
rez=[w[i] for i in range(wl) if rez[i]]
if len(rez):
    print(*rez, sep="\n")
else:
    print("Есть нечего, значить!")
Лень стало разбираться, но ошибку исправил вроде.
0
 Аватар для Semen-Semenich
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,314
16.02.2021, 20:47
Matrix3007, ну ждем что скажет автор топика
0
16.02.2021, 20:57

Не по теме:

Цитата Сообщение от Semen-Semenich Посмотреть сообщение
ну ждем что скажет автор топика
Ничего не скажет. Временный пчел, нестабильный.

0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
16.02.2021, 23:12
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
сам в шоке что сонным написал
я поэтому столько и спрашивал

Добавлено через 22 минуты
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
res  = res[:ind1] + res[-(ind2+1):]
что получается после этой строки?
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,320
16.02.2021, 23:24
gray621, а тут что не подходит?
Слова для кадавра
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
16.02.2021, 23:28
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
res[-(ind2+1):]
а зачем тут -?

Добавлено через 2 минуты
Gdez, я хочу доделать данное решение задачи, нельзя же в конце оставлять уже
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
17.02.2021, 20:06
Semen-Semenich, ваше решение не проходит 6 тест:

Номер теста
6
Ввод
10?*?010
коливо
тюря
говядина
фрукты
масло
коврижка
желе
рулька
бородинский
масса
габерсуп
икра
дрочёна
груздянка
заливное
яйцо
рыба
расстегай
ватрушка
кулич
оладьи
котлеты
шоколад
юрма
кетчуп
кулебяка
стейк
рис
компот
плюшка
пицца
уха
хлеб
салат
пельмени
запеченный
свинина
дежень
вареники
ацидофилин
курица
колбаса
жареные
сахар
чай
калья
курник
мороженое
сушки
сущик
сулой
прага
перец
взвар
блины
клёцки
пасха
макароны
тетёры

Ожидаемый результат
говядина
котлеты
кулебяка
пельмени
вареники
колбаса
макароны
Вывод
Есть нечего, значить!

Добавлено через 1 минуту
Matrix3007, ваше решение не проходит на том же тесте. У вас выводит коливо
тюря
говядина
желе
рыба
котлеты
пельмени
вареники
колбаса
макароны
тетёры

Должно

говядина
котлеты
кулебяка
пельмени
вареники
колбаса
макароны
0
 Аватар для Matrix3007
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
17.02.2021, 20:08
gray621, А твоё решение где?
0
 Аватар для Semen-Semenich
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,314
17.02.2021, 20:16
Цитата Сообщение от gray621 Посмотреть сообщение
Semen-Semenich, ваше решение не проходит 6 тест:
меня это не напрягает. вам нужно - ищите ошибки исправляйте. куча вариантов предложено.
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
17.02.2021, 20:27
Matrix3007, я своё решение дополняю разными, я не просто как LevL123 копирую, я разбираю всё решение, исправляю ошибки, которые могу исправить и только потом сдаю
0
 Аватар для Matrix3007
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
17.02.2021, 20:27
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
vowels = ["а", "е", "о", "и", "э", "ы", "я", "ю", "е", "ё"]
consonants = ["б", "в", "г", "д", "ж", "з", "й", "к", "л", "м", "н", "п", "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ"]
signs = ["ь", "ъ"]
alls=[vowels, consonants, signs]
types={"0":alls[:1], "1":alls[-2:], "?":alls}
m=input().split("*")
w=[]
d=" "
 
def check(word,mask):
    if len(word)-len(mask):
        return False
    p=True
    for i in range(len(mask)):
        pp=False
        for j in types[mask[i]]:
            if word[i] in j:
                pp=True
                break
        if not pp:
            return False
    return p
 
while d != "":
    d=input()
    w.append(d)
 
r=m[0]
rl=len(r)
rez=[check(i, r) for i in w]
wl=len(w)
if len(m)-1:
    r=list(reversed(m[1]))
    rl=len(r)
    rez=[rez[i]*check(list(reversed(w[i])),r) for i in range(wl)]
rez=[w[i] for i in range(wl) if rez[i]]
if len(rez):
    print(*rez, sep="\n")
else:
    print("Есть нечего, значить!")
gray621, Проверяй, раз уж не лень
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
17.02.2021, 20:28
Semen-Semenich, я попробовал с отладочной печатью и тут какая-то ошибка:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    if '*' in template:
 
        index1, index2 = map(len, template.split('*'))
 
        if not index2:  # соль и 1*
            line_template = line_template[:index1]
            print("ok")
 
        elif not index1:  # соль и *1
            line_template = line_template[-(index2 + 1):]
            print("ok2")
        else:
            line_template = line_template[:index1] + line_template[-(index2 + 1):]  # соль и 1*1
            print("ok3")
1* и соль - работает
*1 и соль - не работает
1*1 и соль - не работает
0
 Аватар для Matrix3007
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
17.02.2021, 20:31
Цитата Сообщение от gray621 Посмотреть сообщение
своё решение
Где оно?
Цитата Сообщение от gray621 Посмотреть сообщение
дополняю разными
Что разными?
Цитата Сообщение от gray621 Посмотреть сообщение
исправляю ошибки
Ты не исправляешь, ты только указываешь на них
Цитата Сообщение от gray621 Посмотреть сообщение
и только потом сдаю
Куда сдаёшь?)
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
17.02.2021, 20:48
Цитата Сообщение от Matrix3007 Посмотреть сообщение
Куда сдаёшь?)
яндекс лицей
0
 Аватар для Matrix3007
198 / 164 / 41
Регистрация: 13.05.2019
Сообщений: 844
17.02.2021, 20:50
Цитата Сообщение от gray621 Посмотреть сообщение
яндекс лицей
И в чём смысл обучения, если ты сдаёшь чужие работы?
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
17.02.2021, 20:55
Цитата Сообщение от Matrix3007 Посмотреть сообщение
Ты не исправляешь, ты только указываешь на них
я пытаюсь исправить все ошибки, которые вижу, я исправил ошибку, где было несколько вопросов, когда задача сдастся, я покажу решение

Добавлено через 1 минуту
Цитата Сообщение от Matrix3007 Посмотреть сообщение
И в чём смысл обучения, если ты сдаёшь чужие работы?
это не так, я обсуждаю сложные задачи с другими людьми с cyberforum и узнаю кучу нового. 2 месяца назад я только мог простейшие задачи решать, теперь хоть что-то могу

Добавлено через 23 секунды
это задача дополнительная кстати
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
18.02.2021, 18:37
Semen-Semenich, я нашёл ошибку. Там не нужно + 1:

Python
1
2
3
4
5
6
7
8
    if '*' in template: # если * есть в шаблоне 
        ind1, ind2 = map(len,template.split('*'))
        if not ind2:
            res  = res[:ind1]
        elif not ind1:
            res  = res[-ind2:]
        else:
            res  = res[:ind1] + res[-ind2:]
Теперь работает *1 - соль, 1* - соль, 1*1 - соль

Добавлено через 1 час 59 минут
Тут ещё ошибка

10?*?010
котлеты
сейчас исправлю
0
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
19.02.2021, 15:41
Matrix3007, Semen-Semenich, аааааа, я исправил, у меня чуть крыша не поехала я столько переписывал

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
template = input()
vowels = "аоиэыяюеёу"
flag = True
q_counter = 0
count = -1
qs = []
qs2 = []
count2 = -1
 
for i in template:
    count += 1
    if i == "?":
        qs.append(count)
 
line = input()
while line:
 
    if len(line) >= len(template) - 1:
 
        line_template = ["0" if i in vowels else "1" for i in line]
 
        if "?" in template and len(line_template) == len(template):
 
            for i in qs:
                line_template[i] = "?"
 
        if '*' in template:
            index1, index2 = map(len, template.split('*'))
            if not index2:  # соль и 1*
                line_template = line_template[:index1]
            elif not index1:  # соль и *1
                line_template = line_template[-index2:]
            else:
                line_template = line_template[:index1] + line_template[-index2:]  # соль и 1*1
 
        tmp_template = template.replace("*", "")
 
        if "?" in template and len(line_template) == len(tmp_template):
 
            for i in tmp_template:
                count2 += 1
                if i == "?":
                    qs2.append(count2)
 
            for i in qs2:
                line_template[i] = "?"
 
        line_template = ''.join(line_template)
 
        if line_template == template or line_template == template.replace('*', ''):
            print(line)
            flag = False
 
    qs2 = []
    count2 = -1
    line = input()
 
if flag:
    print("Есть нечего, значить!")
0
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
08.03.2021, 17:57
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def cont(p, w):
    vow = 'аеёиоуыэюя'
    cons = 'бвгджзйклмнпрстфхцчшщьъ'
    n = len(w)
    for i in range(n):
        if p[i] == '?':
            continue
        if (w[i] in vow and p[i] == '1'):
            return False
        if (w[i] in cons and p[i] == '0'):
            return False
    return True
        
 
patt = input()
patt1 = patt
res = []
for word in iter(input, ''):
    if '*' in patt and len(word) + 2 > len(patt):
        patt1 = patt.replace('*', '?' * (len(word) - len(patt) + 1))
    if len(word) == len(patt1) and cont(patt1, word):
        res.append(word)
if res:
    print(*res, sep='\n')
else:
    print('Есть нечего, значить!')
Добавлено через 13 секунд
с РЕР8
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.03.2021, 17:57

В строке записаны слова слова и целые десятичные числа . Для записи слов исп большие и малые буквы , длинна слова не более 16 букв.
В строке записаны слова слова и целые десятичные числа . Для записи слов исп большие и малые буквы , длинна слова не более 16 букв.

Даны два слова. Для каждой буквы первого слова (в том числе для повторяющихся в этом слове букв) определить,
Ребят,осталось 2 задания сделать по лабе,Помогите с одним.Спасибо 1)Даны два слова. Для каждой буквы первого слова (в том числе для...

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

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

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


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

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

Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru