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

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

05.02.2021, 23:40. Показов 27825. Ответов 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
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
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
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
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,318
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
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru