Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/120: Рейтинг темы: голосов - 120, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 21

Самая частая буква в строке

06.04.2019, 20:14. Показов 23745. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка, найти самую повторяющуюся букву в этой строке, знаки препинания, цифры и пробелы не учитывать, регистр не имеет значения
Если в тексте две и больше буквы с одинаковой частотой, тогда результатом будет буква, которая идет первой в алфавите.
Для примера, “one” содержит "o", "n", “e” по одному разу, так что мы выбираем "e".
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.04.2019, 20:14
Ответы с готовыми решениями:

Самая частая буква
Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие буквы) в этой строке встречается чаще...

Самая частая буква
Самая частая буква Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие буквы) в этой...

Самая частая буква
Самая частая буква Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие буквы) в этой строке...

7
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
06.04.2019, 21:29
Лучший ответ Сообщение было отмечено sashaupo как решение

Решение

sashaupo, проявите терпение, сейчас все будет)

Добавлено через 2 минуты
Python
1
2
3
4
5
6
7
8
9
10
11
12
mport  random
from  collections import Counter
def find_common(n):
    mlist=[random.randint(-10, 10) for i in range(n)]
    print(mlist)
    print(Counter(mlist).most_common()[0][0])
    return  Counter(mlist).most_common()[0][0]
 
 
if __name__ == '__main__':
    n=int(input())
    find_common(n)
Добавлено через 26 секунд
С ходу, пример на числах

Добавлено через 19 секунд
С ходу, пример на числах

Добавлено через 15 минут
Python
1
2
3
4
5
6
7
import string
def out_chr(text):
    print(max(string.ascii_lowercase,key=lambda ch: text.lower().count(ch)))
    return max(string.ascii_lowercase,key=lambda ch: text.lower().count(ch))
if __name__ == '__main__':
    text=input()
    out_chr(text)
1
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
06.04.2019, 21:37
Python
1
2
3
4
5
6
7
8
9
data = [x for x in input() if x.isalpha()]
max_count = 0
result = []
for letter in set(data):
    count_ = data.count(letter)
    result.append((letter,count_))
    if count_ > max_count:
        max_count = count_
print(sorted([ lett for lett,coun in result if coun == max_count])[0])
0
2 / 2 / 0
Регистрация: 17.02.2017
Сообщений: 117
07.04.2019, 00:54
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
import re
Stroka = "maayyyyyyyyymmaaaaa mazzzzzzzzzkssssoasl pwoe"
 
numbertwo = 0
k=0
result = []
for letter in Stroka:
    if letter == re.search(r'\W', Stroka):
        continue
    else:
        number = Stroka.count(letter)
        if number > numbertwo:
            numbertwo = number
            k=numbertwo
for letter in Stroka:
    if letter == re.search(r'\W', Stroka):
        continue
    else:
        number = Stroka.count(letter)
        if number == numbertwo and number == k:
            result.append(letter)
 
result = set(result)
result = sorted(result)
print(result[0])
print(numbertwo)
Можно так ещё

Добавлено через 1 минуту
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
print(sorted([ lett for lett,coun in result if coun == max_count])[0])
Как это работает? А то не могу понять
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
07.04.2019, 09:36
Цитата Сообщение от artem312312 Посмотреть сообщение
Как это работает? А то не могу понять
создаем список букв отфильтрованных из списка кортежей (буква,количество) по условию что количество равно максимальному ну а дальше просто сортировка и вывод первой буквы из сприска
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.04.2019, 13:51
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import string 
import random
import re
from collections import Counter
 
 
def test0(data):
    data = ''.join(ch for ch in data.lower() if ch.isalpha())
    max_count = 0
    result = []
    for letter in set(data):
        count_ = data.count(letter)
        result.append((letter,count_))
        if count_ > max_count:
            max_count = count_
    print(sorted([(lett,coun) for lett,coun in result if coun == max_count])[0])
 
 
def test1(data):
    data = ''.join(ch for ch in data.lower() if ch.isalpha())
    arr = map(lambda letter:(letter,data.count(letter)), set(data))
    res = sorted(arr,key=lambda t:(-t[1],t[0]))[0]
    print(res)
 
 
def test2(data):
    data = ''.join(ch for ch in data.lower() if ch.isalpha())
    print(sorted(Counter(data).items(), key=lambda x: (-x[1], x[0]))[0])
 
 
if __name__ == '__main__':
    import timeit
    setup="from __main__ import test0,test1,test2,array,data"
    
    array = (
        list(string.ascii_lowercase) * 100 + 
        list(string.ascii_uppercase) * 100 +
        ["w"] * 1000000 + ["t"] * 1000000 + 
        list(string.punctuation) * 1000
    )    
    random.shuffle(array)
    # формируем длинную строку из латинских букв, знаков пунктуации и пробелов
    data = ' '.join(array)  
    
 
    print('test0: ', timeit.timeit('test0(data)', setup=setup,number=1))
    print('-' * 25)
    print('test1: ', timeit.timeit('test1(data)', setup=setup,number=1))
    print('-' * 25)
    print('test2: ', timeit.timeit('test2(data)', setup=setup,number=1))
    print('-' * 25)
Code
1
2
3
4
5
6
7
8
('t', 1000200)
test0:  1.0278056814695935
-------------------------
('t', 1000200)
test1:  1.0353890491431188
-------------------------
('t', 1000200)
test2:  1.1620159294606371
P.S. Сделал маленькое открытие для себя - метод count работает на списках во много раз медленнее, чем на строках.


Цитата Сообщение от artem312312 Посмотреть сообщение
Можно так ещё
Можно, но не нужно. Ваш скрипт не участвовал в тестировании потому что работает раз в 10000 медленнее, так как вы неправильно организовали его логику.
0
0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 21
11.04.2019, 14:08  [ТС]
А что такое .count(ch)?

Добавлено через 1 минуту
А что такое .count()?
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
11.04.2019, 15:32
sashaupo, https://www.geeksforgeeks.org/python-string-count/
считает количество вхождений подстроки в строку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2019, 15:32
Помогаю со студенческими работами здесь

Самая частая буква в тексте
Дан текст как строка нужно в нем найти самую частую букву. И вывести ее. Если таких букв несколько то нужно взять ту которая идет первой по...

Самая частая буква
Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие буквы) в этой строке встречается чаще...

Самая частая буква
Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие буквы) в этой строке встречается чаще...

Самая частая буква
Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие буквы) в этой строке встречается чаще...

Самая часто встречающаяся буква в строке
Есть 2-ый массив букв. В каждой строке надо найти самые часто встречающиеся буквы(можно создать 1-ый массив с размером кол-во строк в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
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. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru