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

word = input('Введите слово: ')
while word:
    if word.count(word[0])>3: 
        print(word[0], ':', word.count(word[0]))
    word = word.replace(word[0], '')

Есть ли возможность не использовать методы count(), replace()?(Не использовать массив(список) и более сложные структуры. Используются только операции со строками.


Ответы (2 шт):

Автор решения: Nickolay Chistov

Можно с помощью Counter:

from collections import Counter

word = input('Введите слово: ')

c = Counter(word)

for letter in c:
    if c[letter] > 3:
        print(f"{letter} : {c[letter]}")
→ Ссылка
Автор решения: Vladimir Chistov

Такой код выполнят поставленную задачу, используя только числа и строки:

word = input("Введите слово: ")


def count(string: str, letter: str) -> int:  # (1)
    result = 0
    for l in string:
        if l == letter:
            result += 1
    return result


checked = ""  # (2)
for letter in word:
    if letter not in checked:
        occurrences_number = count(word, letter)
        if occurrences_number > 3:
            print(f"{letter} : {occurrences_number}")
        checked += letter

Описание кода:

  1. Определяем свой count.

  2. В строке checked храним уже проверенные символы.

→ Ссылка