Самая частая буква
Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие буквы) в этой строке встречается чаще всего. При решении этой задачи заглавные и строчные буквы считаются одинаковыми, а прочие символы, не являющиеся буквами, не учитываются.
При решении этой задачи нельзя пользоваться вложенными циклами. Входная строка должна обрабатываться за один проход.
Пример:
Ввод:
— We all live in the Yellow Submarine!
Вывод:
EL
5
Я накидал немного, смог все перевести в нижний регистр, исключить всё кроме букв, чтобы до ума довести знаний не хватает, помогите пожалуйста. Спасибо!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
s = input() string = '' string2 = '' for i in s: if i.isalpha(): if i.isupper(): i = i.lower() string = string + i else: string = string + i else: string = string + i string = string.replace(' ', '') for j in string: if 'a' j 'z': string2 = string2 + j
Самая частая буква
Самая частая буква Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского.
Самая частая буква
Самая частая буква Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского.
Самая частая буква в строке
Дана строка, найти самую повторяющуюся букву в этой строке, знаки препинания, цифры и пробелы не.
Самая частая буква в тексте
Дан текст как строка нужно в нем найти самую частую букву. И вывести ее. Если таких букв несколько.
Самая частая буква
Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие.
Сообщение было отмечено mik-a-el как решение
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
from collections import defaultdict from string import ascii_uppercase text = 'We all live in the Yellow Submarine!' dct = defaultdict(int) for ch in text.upper(): if ch in ascii_uppercase: dct[ch] += 1 mx = max(dct.items(), key=lambda v: v[1])[1] for k, v in dct.items(): if v == mx: print(k, end='') print(f'\n')
Самая частая буква
Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие.
Самая частая буква
Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие.
Самая частая цифра числа.
Народ , подскажите пожалуйста идею , как решить данную задачу . Строками пользоваться нельзя . Я.
Самая часто встречающаяся буква в строке
Есть 2-ый массив букв. В каждой строке надо найти самые часто встречающиеся буквы(можно создать.
Самая простая профессия в IT ,по мнению большинства, а также самая интересная
Добрый вечер, а подскажите кто-нибудь пожалуйста, какая профессия в IT самая простая в освоении, по.
Какая строка в массиве встретится раньше: самая короткая или самая длинная
1. Создай массив строк. 2. Добавь в него 10 строчек с клавиатуры. 3. Узнай, какая строка в.
Самая частая буква
Самая частая буква
Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие буквы) в этой строке встречается чаще всего. При решении этой задачи заглавные и строчные буквы считаются одинаковыми, а прочие символы, не являющиеся буквами, не учитываются.
При решении этой задачи нельзя пользоваться вложенными циклами. Входная строка должна обрабатываться за один проход.
Программа должна вывести в первой строке все буквы, которые встречаются чаще всего в исходной строке. Выводить буквы необходимо в заглавном написании, в алфавитном порядке, без пробелов. Во второй строке выведите единственное число — сколько раз в данной строке встречаются эти буквы.
Примеры
Ввод
Вывод
— We all live in the Yellow Submarine!
Вывод
EL
5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
a = input() ans = 0 g='' l='' k='' for i in range(len(a)): c = a[i] c = a[i].lower() if ord(c) != 32: g += c for i in g: b = g.count(i) if b>ans: l = i ans = b print(l.upper()) print(ans)
я написал но выводит только одну букву а если одинаковое количество например двух букв то надо выводить их все в алфовитном порядке подскажитэ пожалуйста
Самая частая буква
Самая частая буква Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского.
Самая частая буква
Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие.
Самая частая буква в строке
Дана строка, найти самую повторяющуюся букву в этой строке, знаки препинания, цифры и пробелы не.
Самая частая буква в тексте
Дан текст как строка нужно в нем найти самую частую букву. И вывести ее. Если таких букв несколько.
Самая частая буква
Дана строка, возможно, содержащая пробелы. Определите, какая буква латинского алфавита (или какие.
Сообщение было отмечено dimon0977 как решение
Решение
s=input() k=0 a='' for i in range(len(s)): if ('a's[i]'z' or 'A's[i]'Z') and s.count(s[i].lower())+s.count(s[i].upper())>k: a=s[i].upper() k=s.count(s[i].lower())+s.count(s[i].upper()) elif ('a's[i]'z' or 'A's[i]'Z') and s.count(s[i].lower())+s.count(s[i].upper())==k and a.count(s[i].upper())==0: a+=s[i].upper() print(''.join(sorted(a))) print(k)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
s = input() s = s.upper() s = s.replace(" ", "") r = s.count(s[0]) k = set() for i in s: if "A" i "z": if r s.count(i): r = s.count(i) for i in s: if "A" i "z": if r == s.count(i): k.add(i) print("".join(sorted(k))) print(r)
>>> 'A' 'r' True >>> 'A' 'r' 'z' True >>> 'A' 'R' 'z' True >>>
1 2 3 4 5 6 7 8 9 10 11 12 13
s = input().upper().replace(" ", "") r = 0 k = set() for i in s: if r s.count(i): r = s.count(i) for i in s: if r == s.count(i): k.add(i) print("".join(sorted(k))) print(r)
dct = dict() for el in input(): if el.isalpha(): dct[el] = dct.get(el, 0) + 1 max_count = max(dct.values()) print(''.join(sorted([k for k,v in dct.items() if v == max_count])).upper()) print(max_count)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
import collections list_ = "- We all live in the Yellow Submarine!".lower() l = collections.Counter(list_).most_common() tMax = [] vMax = 0 for t in l: if t[1] >= vMax and ord(t[0]) >= 97 and ord(t[0]) 122: tMax.append(t[0]) if t[1] > vMax: vMax = t[1] elif t[1] vMax: break s = "".join(sorted(tMax)).upper() print(s) print(vMax)
сириус пишет что выдаёт неправильный ответ
функция поднимает все буквы до заглавных,
ниже проверяется соответствие элемента какой-либо заглавной букве и,если соответствует,
сравнивает с наибольшим количеством проверенных букв.
Если количество вхождений больше,чем best_l происходит замена, если равно, то
если была строка(один элемент) в best_l, то преобразуется в список с 2-умя элементами,
если был список, то просто добавляется
в конце просто вывод
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
def Capitalize(S): for j in range(0,len(S)): if 97ord(S[j])122 : S = S[:j:] + chr(ord(S[j])-32) + S[j+1::] return S H = input() H = Capitalize(H) best_n = 0 best_l = [] for i in H: if 65ord(i)90 : n = H.count(i) if n > best_n : best_n = n best_l = i elif n == best_n : if type(best_l) == str : best_l = [best_l,i] if i not in best_l: best_l.append(i) if type(best_l) == int: print(best_l) else: out = '' for u in range(len(best_l)): out+=best_l[u] print(out) print(best_n)
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 2 3 4 5 6 7 8 9 10 11 12
i = input().upper() c = 0 a = "" for k in i: if k.isalpha(): if ci.count(k): c = i.count(k) a = k elif c == i.count(k) and k not in a: a+=k print("".join(sorted(a))) print(c)
Сообщение от MAeStr
Как видно выше, задание для Сириуса, до этой темы они как-бы не знают списки — могут заблочить. Мое решение прекрасно работает. В чём вы видите причины, что не нужно складывать строки?
P.S. Я не оспариваю, что это не так, просто хочу учесть на будущее
Сообщение от MAeStr
Загугли, чем плоха конкатенация строк в цикле. Сомнительно, что вас такому учат (если лекторы набираются не из числа бывших студентов).
Лекторы там хорошие, но я не хотел затруднять решение, что как-бы ещё не известно. В гугле ничего не нашёл, поэтому прошу объяснить. К тому же уровень начальный и не важны такие тонкости
P.S.: в принципе же интерпретатору всё равно, где происходит сложение строк, выполнение будет одно и тоже
Сообщение от MAeStr
Плохо значит ищешь: Which is the preferred way to concatenate a string in Python?
1) Добавляешь в список list_.append(str_) , затем конкатенируешь join’ом «».join(list_) ;
2) Используешь io.StringIO : добавляешь sb.write(str_) и получаешь конкатенированную строку sb.getvalue() .
P. S. Первый вариант хорош, когда промежуточные представления не нужны (результирующая строка нужна лишь в конце цикла), второй — когда промежуточные представления нужны.
В вашем источнике нет причины. Сторонние библиотеки использовать нельзя. Списки, как я уже объяснил, там идут следующим уроком, решение могут не засчитать
Сообщение от MAeStr
В вашем источнике нет причины. Сторонние библиотеки использовать нельзя. Списки, как я уже объяснил, там идут следующим уроком, решение могут не засчитать
Сообщение от MAeStr
Сторонние библиотеки использовать нельзя. Списки, как я уже объяснил, там идут следующим уроком, решение могут не засчитать
Накладывание ограничений на использование всех возможностей питона, говорит о неграмотно заданном условии. Некоторые почему то считают достоинством решать задачи примитивными средствами. На самом деле глупо приучать использовать примитивы, при наличии более мощных инструментов.
Для меня принципиально использовать всю мощь языка, а не ограниченную его часть.
Если же, какие то расширенные возможности еще не изучались, то не грамотно давать задание где эффективнее использовать более мощные инструменты. Оптимальное решение задачи должно соответствовать объему изученного материала. К сожалению не все преподаватели умеют создавать такие задания.
Сообщение от Viktorrus
Накладывание ограничений на использование всех возможностей питона, говорит о неграмотно заданном условии. Некоторые почему то считают достоинством решать задачи примитивными средствами. На самом деле глупо приучать использовать примитивы, при наличии более мощных инструментов.
Для меня принципиально использовать всю мощь языка, а не ограниченную его часть.
Если же, какие то расширенные возможности еще не изучались, то не грамотно давать задание где эффективнее использовать более мощные инструменты. Оптимальное решение задачи должно соответствовать объему изученного материала. К сожалению не все преподаватели умеют создавать такие задания
Сам не считаю этот подход правильным, но такие условия предоставляются чтобы задачи решались больше логикой, чем знанием некоторых функций питона, навыками в их использовании. К тому же если обучение идет классом, это обеспечивает равноценность решений каждого, опираясь на уже пройденный материал, который начинается с нуля