Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/141: Рейтинг темы: голосов - 141, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 29.12.2020
Сообщений: 51

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

05.02.2021, 23:40. Показов 27241. Ответов 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
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,291
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
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,291
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
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
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
5220 / 3468 / 1172
Регистрация: 21.03.2016
Сообщений: 8,291
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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru