Задача на строки питон
Как известно, Винни-Пуха очень расстраивают длинные слова. У него есть одно такое слово и он очень хочет его сократить. Винни-Пух решил, что если он выбросит из слова все вхождения некоторой одной буквы, то смысл слова не очень изменится, но слово станет короче
Ваша задача — найти какое самое короткое слово сможет получить Винни-Пух. Если вариантов ответа несколько, то можно вывести любой.
Input
oboronosposobnost
brnspsbnst
Output
abbba
aa
я так понял можно использовать метод строки count и соответсвенно удалить, убрать.
Ответы (3 шт):
Посчитать вхождения для каждой буквы и удалить ту, которая больше всего места занимает.
s = 'oboronosposobnost'
s.replace(max([s.count(x), x] for x in s)[1], '')
s = 'oboronosposobnost'
s = s.replace(max(s, key=s.count), '')
print(s)
Нужно найти самую популярную букву. collection.Counter(word) возвращает словарь с популярностью всех букв в слове. Извлекаем из него всё в виде пар. Пары переворачиваем вот так: (популярность, буква). Из таких пар можно выбрать максимальную. word.replace(буква, '') удаляет её. Работает за линейное время.
import collections
def help_bear(word):
_, most_popular = max((n, c) for c, n in collections.Counter(word).items())
return word.replace(most_popular, '')
print(help_bear('abca'))
print(help_bear('a' * 10000 + 'b' + 'a' * 10000))