Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
7 / 6 / 1
Регистрация: 02.12.2022
Сообщений: 59

Колобок и кочки Питон

14.12.2022, 20:15. Показов 2280. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сказка про Колобка, альтернативный вариант.

Полежал Колобок на окошке, остыл, обозрел окрестности, и решил произвести рекогносцировку. Но не учел, что вокруг домика бабки и дедки сильно пересеченная местность.

Спрыгнув с окошка, он сразу попал на кочку: "Оо!" Потом на другую: "Ааа!" Потом на третью: "Огого!"

В результате некоторые звуки, издаваемые Колобком, повторяются столько раз, сколько он подпрыгивает на кочке.

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

Формат ввода
Целое число n — количество кочек.

Затем n строк, в которых записано, сколько раз Колобок подпрыгнул на соответствующей кочке.

Затем опять n строк — что Колобок сказал, подпрыгивая на каждой кочке.

Формат вывода
Из каждой строки нужно взять ту букву, которая повторялась указанное для этой строки количество раз, и составить из этих букв слово. Если это сделать невозможно, вывести вместо полученного слова фразу: нечленораздельно.

Пример 1
Ввод Вывод
4
1
2
3
4
шмякушмяк
шушера
ёёёллки
аллополиплоидия
ушёл
Пример 2
Ввод Вывод
2
1
4
постирония
чикибамбони
нечленораздельно
Примечания
При решении задачи можно использовать только циклы, списки и операции над строками, списками и числами, то есть только те средства, которые пройдены к данному моменту.


Привет, форумчане! Нужна помощь. Проблема в том, что программа составляет слово, когда надо писать "нечленораздельно"
Код прилагаю:
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
n = int(input())
a = [int(input()) for _ in range(n)]
b = [input() for _ in range(n)]
c, d = '', ''
s, k, f, r, e = 0, -1, 0, 0, 0
x = True
 
for i in b:
    k += 1
    for j in range(len(i)):
        for h in range(len(i)):
            if i[j] == i[h]:
                s += 1
        if s == a[k]:
            c += i[j]
        s = 0
for g in a:
    f += g
if f != len(c):
    x = False
    print('нечленораздельно', end='')
if x:
    d = c[0]
for t in range(1, len(c)):
    if not x:
        break
    if c[t] == c[t - 1] and r < a[e]:
        r += 1
        continue
    r = 1
    e += 1
    d += c[t]  
if f != len(c) and x:
    print('нечленораздельно')
else:
    print(d)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.12.2022, 20:15
Ответы с готовыми решениями:

Колобок и кочки
Сказка про Колобка, альтернативный вариант. Полежал Колобок на окошке, остыл, обозрел окрестности, и решил произвести рекогносцировку....

Колобок и кочки
Сказка про Колобка, альтернативный вариант. Полежал Колобок на окошке, остыл, обозрел окрестности, и решил произвести рекогносцировку....

Колобок и кочки
Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt ...

9
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
14.12.2022, 22:59
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
from collections import Counter
 
res = ''
for i, x in enumerate([int(input()) for _ in range(int(input()))], 1):
    d = [k for k, v in Counter(input()).items() if v == i]
    if len(d) == 1:
        res += d[0]
    else:
        print('нечленораздельно')
        break
else:
    print(res)
2
7 / 6 / 1
Регистрация: 02.12.2022
Сообщений: 59
15.12.2022, 20:57  [ТС]
Большое спасибо!

Добавлено через 13 минут
Блин, забыл, нельзя же использовать сторонние библиотеки! Можешь, пожалуйста, переделать решение???
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
15.12.2022, 21:10
Counter перепиши через обычный словарь. не получится если, напишу.
0
7 / 6 / 1
Регистрация: 02.12.2022
Сообщений: 59
16.12.2022, 21:33  [ТС]
Цитата Сообщение от eaa Посмотреть сообщение
Counter перепиши через обычный словарь. не получится если, напишу.
Чувак, дико извиняюсь за неграмотность, ну вот не выходит переписать. Сделай, пожалуйста, признаюсь, руки у меня из...
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
16.12.2022, 21:56
Dezertir747, покажи код. Что не получилось? Или просто не пробовал даже?
0
7 / 6 / 1
Регистрация: 02.12.2022
Сообщений: 59
18.12.2022, 21:35  [ТС]
Цитата Сообщение от eaa Посмотреть сообщение
покажи код. Что не получилось? Или просто не пробовал даже?
Извини, но я вообще не понял, как работает твой код, чтобы его редактировать. Если не сложно, то перепиши через обычный словарь, если нет, то хотя бы расставь комменты в своём коде. И за одно и за другое буду благодарен
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
19.12.2022, 06:14
Цитата Сообщение от Dezertir747 Посмотреть сообщение
нельзя же использовать сторонние библиотеки!
collections встроенная библиотека
0
7 / 6 / 1
Регистрация: 02.12.2022
Сообщений: 59
19.12.2022, 15:37  [ТС]
В контексте данного задания любые импортированные библиотеки - сторонние
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
19.12.2022, 15:42
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def Counter(s):
    d = {}
    for ch in s:
        d[ch] = d.get(ch, 0) + 1
    return d
 
res = ''
for i, x in enumerate([int(input()) for _ in range(int(input()))], 1):
    d = [k for k, v in Counter(input()).items() if v == i]
    if len(d) == 1:
        res += d[0]
    else:
        print('нечленораздельно')
        break
else:
    print(res)
Добавлено через 1 минуту
все по ТЗ, библиотек нет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2022, 15:42
Помогаю со студенческими работами здесь

Колобок и кочки
Напишите программу, которая попытается из нескольких повторений выделить оригинальный текст. Формат ввода Целое число n — количество...

Задача: Взять заданную строку в кавычки вида «» . можно ли сразу решение и листинг пж . питон. код питон питон
Взять заданную строку в кавычки вида «» .

Колобок
Сказка про Колобка, альтернативный вариант. Полежал Колобок на окошке, остыл, обозрел окрестности, и решил произвести рекогносцировку....

БД Колобок
Доброго времени суток. Имеется задание, цитирую: &quot;База данных “Колобок”: ушел(колобок,дедушка), ушел(колобок, бабушка), ушел(колобок,...

Колобок(списки)
Колобок был на море N дней. Каждый день он не терял времени и собирал ракушки. Вечером каждого дня он записывал, сколько ракушек он собрал...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru