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



Скачай курс
в приложении
Перейти в приложение
Открыть мобильную версию сайта
© 2013 — 2023. Stepik
Наши условия использования и конфиденциальности

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). Определите символ.
![]()
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]
![]()
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])