• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 4. строки

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Частота символов строки»

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

Формат ввода

Музыкальный семпл (тип: строка). Это одна строка без пробелов, которую вводит пользователь.

Формат Вывода

Результат проверки (тип: булево значение). Это либо слово True, либо слово False.

Пример

Ввод

gogogo

Вывод

True

Подсказка

Тут подсказки не будет, решай сам!

main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика
# Получаем строку от пользователя
input_string = input()

# Получаем длину введенной строки
n = len(input_string)

# Создаем флаг, который покажет, нашли ли мы подходящий шаблон. Изначально считаем, что не нашли.
found_pattern = False

# Начинаем цикл для проверки всех возможных длин подшаблона.
# Длина подшаблона (i) может быть от 1 до половины длины всей строки.
# Длиннее половины быть не может, так как шаблон должен повториться хотя бы дважды.
for i in range(1, n // 2 + 1):
    # Проверяем, делится ли длина всей строки нацело на длину предполагаемого шаблона.
    # Если нет, то из такого шаблона целую строку составить нельзя.
    if n % i == 0:
        # Если делится, то у нас есть кандидат в шаблоны.
        # Это начальная часть строки длиной i.
        pattern = input_string[:i]
        
        # Вычисляем, сколько раз наш кандидат-шаблон должен повториться, чтобы получить строку нужной длины.
        num_repeats = n // i
        
        # Создаем тестовую строку, повторяя наш кандидат-шаблон нужное количество раз.
        test_string = pattern * num_repeats
        
        # Сравниваем созданную тестовую строку с оригинальной.
        if test_string == input_string:
            # Если они совпали, значит, мы нашли повторяющийся шаблон.
            found_pattern = True
            # Прерываем цикл, так как дальнейшие проверки не нужны.
            break

# После завершения цикла выводим значение флага.
# Если мы нашли шаблон, он будет True, если нет - останется False.
print(found_pattern)

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, объяснить то, что тебе не понятно, а также о текущей задаче!