Определите символ который чаще всего встречается в файле сразу после буквы a
Перейти к содержимому

Определите символ который чаще всего встречается в файле сразу после буквы a

  • автор:

Определите символ который чаще всего встречается в файле сразу после буквы a

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Е24.5. который чаще всего встречается в файле сразу после буквы B

Определите символ, который чаще всего встречается в файле сразу после буквы B. Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z).

Например, в тексте BBCAABADBC после буквы B два раза стоит C, по одному разу – B и A. Для этого текста ответом будет C.

Решение:

Строка: Определите символ, который чаще всего встречается в файле сразу после буквы A.

Текстовый файл содержит только заглавные буквы латинского алфавита
(ABC…Z). Определите символ, который чаще всего встречается в файле
сразу после буквы A.
Например, в тексте ABCAABADDD после буквы A два раза стоит B, по
одному разу – A и D. Для этого текста ответом будет B.

Совсем не понимаю как делать эту задачу, не судите строго, только начинаю все это изучать. Помогите пожалуйста

Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Определите символ,который чаще всего встречается в файле после буквы Е
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите символ.

Определите символ, который чаще всего встречается в файле после двух одинаковых символов
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите символ.

Определите символ, который чаще всего встречается в файле
Текстовый файл 24-157.txt содержит только заглавные буквы латинского алфавита (ABC. Z). Определите.

Определите символ, который чаще всего встречается в файле после двух одинаковых символов
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите символ.

Эксперт Python

7545 / 4114 / 1798
Регистрация: 27.03.2020
Сообщений: 6,934

Лучший ответ

Сообщение было отмечено harken как решение

Решение

harken,

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
def fun(st) : n = len(st) tmp = dict() w_max = '' k_max = 0 for i in range(1, n) : if st[i-1] == 'A' : tmp[st[i]] = tmp.get(st[i], 0) + 1 if tmp[st[i]] >= k_max : if tmp[st[i]] > k_max : w_max = st[i] else : w_max += ' ' + st[i] k_max = tmp[st[i]] print(w_max) fun('ABCAABADDD')

635 / 475 / 179
Регистрация: 28.05.2012
Сообщений: 1,413

Лучший ответ

Сообщение было отмечено Gdez как решение

Решение

1 2 3 4 5 6 7 8 9 10 11 12
from collections import Counter def fun(row): tmp = [] for i in range(len(row) - 1): if row[i] == 'A' and row[i + 1] != 'A': tmp.append(row[i + 1]) return Counter(tmp).most_common(1)[0][0] print(fun('ABCAABADDD'))
1 2 3
def fun(row): tmp =[row[i + 1] for i in range(len(row) - 1) if row[i] == 'A' and row[i + 1] != 'A'] return Counter(tmp).most_common(1)[0][0]

Эксперт Python

7545 / 4114 / 1798
Регистрация: 27.03.2020
Сообщений: 6,934
Vigi, «A» тоже считать нужно — второе условие лишнее
635 / 475 / 179
Регистрация: 28.05.2012
Сообщений: 1,413
Gdez, Пусть сам разбирается нужно или нет
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Определите символ, который чаще всего встречается в файле между двумя одинаковыми символами
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите символ.

Строка: Найти символ, который встречается чаще всего в тексте
Может найдется добрый человек и накидает кода даже не рабочего нужно очень сделать курсовой на.

Определить символ, который чаще всего встречается в файле между буквами A и C
Задача: (№ 3158) Текстовый файл 24-s2.txt состоит не более чем из 106 заглавных латинских букв.

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

Определить символ, который чаще всего встречается в файле между двумя одинаковыми символами
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите символ.

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

Определить символ, который чаще всего встречается в файле после двух одинаковых символов

Задача: Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите символ, который чаще всего встречается в файле после двух одинаковых символов. Например, в тексте ‘CCCBBABAABCC’ есть комбинации CCC, CCB, BBA и AAB. Чаще всего — 2 раза — после двух одинаковых символов стоит B, в ответе для этого случая надо написать ‘B’. Мой код (ответ выдаёт неверный):

file = open('88.txt') all = list(file.readline()) litteral = [] count, max, wMax = 0, 0, '' for i in range(0, len(all)-2): if all[i] == all[i+1]: litteral.append(all[i+2]) for k in range(0, len(litteral)-1): if litteral[k] == litteral[k+1]: count+=1 else: count = 0 if count > max: max = count wMax = litteral[k] print(wMax, litteral) 

Файл с данными: https://disk.yandex.ru/d/mUCkZfFCA13ccg
Верный ответ для данных из файла: ‘K’ Прошу помочь разобрать задачу или как-то исправить мой код.

Отслеживать
12.5k 7 7 золотых знаков 19 19 серебряных знаков 48 48 бронзовых знаков
задан 9 апр 2021 в 11:34
VsevolodLudeat VsevolodLudeat
71 1 1 серебряный знак 4 4 бронзовых знака

++ за отлично оформленный вопрос! Понятная формулировка задачи в виде текста (не фото), присутствует собственная попытка решения, пример входных данных и ожидаемый результат. Было бы здорово если бы все новые участники SO так же оформляли свои вопросы)

9 апр 2021 в 11:43

@MaxU вопрос только оформлен хорошо, но сам, «вот моя задачка, я как-то решил, исправьте мне» — плох и бесполезен. Даже входные данные не включены в тело вопроса, в по ссылке которая протухнет через неделю.

9 апр 2021 в 11:47

@Kromster, согласен, заголовок можно было бы улучшить. Но по сравнению с другими «учебными» вопросами — этот оформлен почти безупречно) ЗЫ переименовал заголовок

9 апр 2021 в 11:48

@MaxU на всякий случай, напомню, что SO это не сбор условий задачек и не онлайн база решателей задачек за студентов, а сбор базы знаний. То есть хороший вопрос должен был бы иметь вид «Как найти символ, который чаще всего встречается в файле после двух одинаковых символов», и в таком виде — закрыт после непродолжительно отладки.

9 апр 2021 в 11:52

@Kromster, повторюсь — все познается в сравнении. По сравнению с другими «учебными» вопросами этот оформлен отлично, особенно если учесть, что автор новичек (это его первый вопрос)

9 апр 2021 в 11:57

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

Ладно, добавлю и я свой вариант:

from collections import Counter with open('88.txt') as f: text = f.read() counter = Counter(c for a,b,c in zip(text,text[1:],text[2:]) if a == b) print(counter.most_common(1)[0][0]) 

Отслеживать
ответ дан 9 апр 2021 в 12:11
68.6k 5 5 золотых знаков 20 20 серебряных знаков 51 51 бронзовый знак
элегантное решение с zip(text,text[1:],text[2:]) 🙂
9 апр 2021 в 12:13

@MaxU Ну, на самом деле вот как-раз этот фрагмент не выглядит элегантным, но строка вычисления в целом по-моему выглядит бешено понятной, а я люблю, когда всё понятно )

9 апр 2021 в 12:15
я тоже за понятный и легко-читаемый код)
9 апр 2021 в 12:16

@MaxU Чтобы не повторяться можно написать zip(*(text[i:] for i in range(3))) , но что-то это не выглядит проще, ладно %)

9 апр 2021 в 12:23

нет, это будет явным ухудшением — в оригинальном варианте намерения автора очень понятно, а здесь — нет 🙂

9 апр 2021 в 12:24

Я, кажется, понял, как вы хотели подсчитать максимальное количество символов, и если мое понимание правильное, то вы забыли написать litteral.sort() перед вторым циклом. Кроме этого есть еще небольшая ошибка, из-за которой count для каждой буквы на один меньше, чем должен быть. С исправлением ваш код будет выглядеть так:

file = open('88.txt') string = list(file.readline()) #all - это стандартная функция в питоне, поэтому не стоит к ней что-то присваивать litteral = [] count, max_count, max_letter = 1, 0, '' #max - тоже функция, поэтому его тоже не стоит использовать for i in range(0, len(string) - 2): if string[i] == string[i+1]: litteral.append(string[i+2]) litteral.sort() for k in range(len(litteral)-1): if litteral[k] == litteral[k+1]: count += 1 else: count = 1 if count > max_count: max_count = count max_letter = litteral[k+1] print(max_letter) #K 

Я добавил сортировку, исправил пару багов и внес пару правок, но это ваш код.

Вообще, можно быстрее, да и кода поменьше:

file = . string = . count = [0] * 26 #можно заменить на словарь for i in range(len(string) - 2): if string[i] == string[i + 1]: count[ord(string[i + 2]) - ord('A')] += 1 res = max((count[i], i) for i in range(26)) res_letter = chr(res[1] + ord('A')) print(res_letter) #K 
. count = for i in range(len(string) - 2): if string[i] == string[i + 1]: count[string[i + 2]] += 1 res = max(count, key=count.get) print(res) 
from collections import Counter . count = Counter() for i in range(len(string) - 2): if string[i] == string[i + 1]: count[string[i + 2]] += 1 print(count.most_common(1)[0][0]) 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *