Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
207 / 5 / 2
Регистрация: 27.04.2024
Сообщений: 72

Скучная лекция

01.05.2024, 14:18. Показов 888. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вася взял листок и написал на нём своё любимое слово. Затем он повторил своё любимое слово, без первой буквы. Ещё ниже он снова написал своё любимое слово, но в этот раз без двух первых и последней буквы. В результате он выписал всеми возможными способами это слово без какой-то части с начала и какой-то части с конца.

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

Формат входных данных
На вход подаётся строка, состоящая из строчных латинских букв — любимое слово Васи.

Длина строки лежит в пределах от 5 до 100000 символов.

Формат результата
Для каждой буквы на листочке Васи, выведите её, а затем через двоеточие и пробел сколько раз она встретилась в списке. Буквы должны следовать в алфавитном порядке. Буквы, не встречающиеся на листочке, выводить не нужно.

Примеры
Входные данные
hello
Результат работы
e: 8
h: 5
l: 17
o: 5
Входные данные
abacaba
Результат работы
a: 44
b: 24
c: 16


Тема Коллекции

Вот мой код но работает больше 1 секунды
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from collections import Counter
 
fav_word = input().strip()
 
letter_counter = Counter()
 
 
for i in range(len(fav_word)):
    for j in range(i+1, len(fav_word)+1):
        sliced_word = fav_word[i:j]
        letter_counter.update(sliced_word)
 
for letter in sorted(letter_counter):
    count = letter_counter[letter]
    print(f'{letter}: {count}')
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.05.2024, 14:18
Ответы с готовыми решениями:

Скучная лекция
Лёша сидел на лекции. Ему было невероятно скучно. Голос лектора казался таким далеким и незаметным... Чтобы окончательно не уснуть, он...

Задача - Скучная лекция (Python)
Скучная лекция - Python Лёша сидел на лекции. Ему было невероятно скучно. Голос лектора казался таким далёким и незаметным... ...

Скучная лекция
Лёша сидел на лекции. Ему было невероятно скучно. Голос лектора казался таким далеким и незаметным... Чтобы окончательно не уснуть, он...

9
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
01.05.2024, 15:34
Пф… решается без всяких срезов.

И довольно интереснее:

Code
1
2
3
4
5
h = 1 1 1 1 1 = 5
e = 1 2 2 2 1 = 8
l = 1 2 3 2 1 = 9
l = 1 2 2 2 1 = 8 + 9 = 17
o = 1 1 1 1 1 = 5
Добавлено через 15 минут
Вся магия в числах:

Code
1
2
3
4
5
len(fav_word) = 5:
5 8 9 8 5
 
len(fav_word) = 6:
6 10 12 12 10 6
Добавлено через 13 минут
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
fav_word = 'hello'
l = len(fav_word)
 
d = {}
a = l
k = fav_word[0]
d[k] = d.setdefault(k, 0) + a
k = fav_word[-1]
d[k] = d.setdefault(k, 0) + a
j = l
for i in range(1, l // 2):
    j -= 2
    a += j
    k = fav_word[i]
    d[k] = d.setdefault(k, 0) + a
    k = fav_word[-i - 1]
    d[k] = d.setdefault(k, 0) + a
 
if l % 2 == 1:
    j -= 2
    a += j
    k = fav_word[l // 2]
    d[k] = d.setdefault(k, 0) + a
 
print(d)
Добавлено через 3 минуты
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
fav_word = 'hello'
l = len(fav_word)
 
d = {}
a = 0
j = l
for i in range(l // 2):
    a += j
    k = fav_word[i]
    d[k] = d.setdefault(k, 0) + a
    k = fav_word[-i - 1]
    d[k] = d.setdefault(k, 0) + a
    j -= 2
 
if l % 2 == 1:
    a += j
    k = fav_word[l // 2]
    d[k] = d.setdefault(k, 0) + a
 
print(d)
assert d == {'e': 8, 'h': 5, 'l': 17, 'o': 5}
2
207 / 5 / 2
Регистрация: 27.04.2024
Сообщений: 72
01.05.2024, 15:35  [ТС]
Рыжий Лис, все верно но ваша программа выводит ответ так {'h': 5, 'o': 5, 'e': 8, 'l': 17}, а не
e: 8
h: 5
l: 17
o: 5
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
01.05.2024, 15:36
Я сейчас -90 в репутацию влеплю за такие вопросы.
0
207 / 5 / 2
Регистрация: 27.04.2024
Сообщений: 72
01.05.2024, 15:47  [ТС]
Если быть честным, то вы просто так репутацию ставите, даже если брать тему oxwaze "Проверка Магического квадрата" вы даже не смотрели по какой теме нужно сделать задачу, а просто сделали код, поставили репутацию -93 за то что он вас проигнорировал. Если хотите ставьте мне - 90
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
01.05.2024, 15:50
Лучше сам напиши код по выводу данных.
0
207 / 5 / 2
Регистрация: 27.04.2024
Сообщений: 72
01.05.2024, 16:03  [ТС]
Рыжий Лис, подскажи как сделать чтобы он выводил так
e: 8
h: 5
l: 17
o: 5 , а не
h: 5
o: 5
e: 8
l: 17
ну в плане того чтобы буквы правильно шли
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
fav_word = input()
l = len(fav_word)
 
d = {}
a = l
k = fav_word[0]
d[k] = d.setdefault(k, 0) + a
k = fav_word[-1]
d[k] = d.setdefault(k, 0) + a
j = l
for i in range(1, l // 2):
    j -= 2
    a += j
    k = fav_word[i]
    d[k] = d.setdefault(k, 0) + a
    k = fav_word[-i - 1]
    d[k] = d.setdefault(k, 0) + a
 
if l % 2 == 1:
    j -= 2
    a += j
    k = fav_word[l // 2]
    d[k] = d.setdefault(k, 0) + a
 
for key, value in d.items():
    print(f"{key}: {value}")
я ваш код переделал
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
01.05.2024, 16:09
Цитата Сообщение от utsushi Посмотреть сообщение
Буквы должны следовать в алфавитном порядке.
А для этого надо сделать что?..
0
207 / 5 / 2
Регистрация: 27.04.2024
Сообщений: 72
01.05.2024, 16:10  [ТС]
Рыжий Лис, Уже ничего не нужно, я сделал
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
01.05.2024, 18:47
dict.setdefault всё-таки перебор.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
fav_word = 'hello'
n = len(fav_word)
 
d = {}
a = 0
j = n
for i in range(n // 2):
    a += j
    k = fav_word[i]
    d[k] = d.get(k, 0) + a
    k = fav_word[-i - 1]
    d[k] = d.get(k, 0) + a
    j -= 2
 
if n % 2 == 1:
    a += j
    k = fav_word[n // 2]
    d[k] = d.get(k, 0) + a
 
print(d)
assert d == {'e': 8, 'h': 5, 'l': 17, 'o': 5}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.05.2024, 18:47
Помогаю со студенческими работами здесь

Скучная лекция
Скучная лекция Лёша сидел на лекции. Ему было невероятно скучно. Голос лектора казался таким далеким и незаметным... Чтобы окончательно...

Лекция Роберта Локарда, президента Oraclewizard 12 ноября 16:00 в Москве (бесплатно)
Добрый день! Приглашаем на лекции президента компании Oraclewizard. Роберт - профессиональный администратор базы данных Oracle,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru