@VishenkaNaTorte

Как найти самый частый символ в строке?

Для входной строки надо вычислить символ, который встречается в ней чаще всего.
К примеру для строки cccc8923jbbdkcc вывод будет c

Смотрел готовые решения, но ничего подходящего не нашел, либо они были сложными и надо было подключать модуль Counter.

Можно ли как-то проще решить?
  • Вопрос задан
  • 238 просмотров
Решения вопроса 1
kshnkvn
@kshnkvn Куратор тега Python
yay ✌️ t.me/kshnkvn
foo = 'cccc8923jbbdkcc'

max_item = lambda s: max(t := {i: s.count(i) for i in s}, key=t.get)

max_item(foo)
# 'c'

P.S. Это будет работать только для Python3.8+
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
sswwssww
@sswwssww
string = 'fgfhsadsssssllfd'
counted_chars = {}

for char in string:
    if char in counted_chars:
        counted_chars[char] += 1
    else:
        counted_chars[char] = 1

print(max(counted_chars))

Или:
from collections import defaultdict

string = 'fgfhsadsssssllfd'
counted_chars = defaultdict(int)

for char in string:
    counted_chars[char] += 1

print(max(counted_chars))

p.s.: я мягко говоря в шоке от того что тут предлагают все возможные заковыристые(привет дзен Python ) и не работающие даже на <3.8 версиях языка варианты кроме самого очевидного и простого
p.s. 2: лучше юзать Counter
Ответ написан
@bituke
Вроде бы создаешь джоин нужного тебе текста, создаешь пустой кортеж, через цикл каждую букву добавляешь в кортеж, потом создаешь пустую переменную, если следующая буква имеется в этом кортеже, то в эту переменную пишешь название этой буквы, и количество раз которое она встретилась, Потом так же через условие проверяешь, если повторяется еще одна буква, отличная от другой(которая так же повторялась), то создаешь вторую переменную и действуешь так же как в прошлом пункте.

Алгоритмически объяснил, а вот с кодом помучайся пожалуйста сам :)
Ответ написан
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Есть сколько угодно способов, но с Counter будет самым простым. Чем вам этот способ не нравится?
Если это вопрос, а не задание, то вы, наверно. постарались придумать свой способ, что у вас не получилось? Давайте мы вам поможем. Если это задание, а не вопрос, то это противоречит правилам ресурса.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
deeplay Новосибирск
от 130 000 ₽
от 130 000 ₽
Enjoy PRO Санкт-Петербург
от 140 000 до 180 000 ₽
20 окт. 2020, в 22:57
5000 руб./за проект
20 окт. 2020, в 21:37
300000 руб./за проект
20 окт. 2020, в 21:18
500 руб./за проект