Собеседование Python разработчик Умар Ширваниев
Поддержать канал: www.tinkoff.ru/rm/pronin.andr...
Обычно денежка идёт на книжки про питончик. Но иногда на светлое и тёмное.
Виш лист
Хорошие книги по Питончику, которые могу рекомендовать (и хочу купить с вашей помощью).
Знакомство с Python | Бейдер Дэн (2023) - выглядит приятно для новичка
Чистый Python. Тонкости программирования для профи | Бейдер Дэн (2022) - хорошо для продолжения
Высоконагруженные приложения. Программирование, масштабирование, поддержка | Клеппман Мартин
Изучаем Python. Двухтомник. Марк Лутц. Очень подробно и структурно (Хочу дождаться 6го издания.. )
• Изучаем Python с Марко...
Читаем и разбираем ее тут
Куплено (огромное спасибо зрителям)
Python. К вершинам мастерства | Рамальо Лучано - 2е издание - сложно для новичка, но интересно
Паттерны разработки на Python: TDD, DDD и событийно-ориентированная архитектура -- хорошо про то, когда какой фреймворк применять
Видимо, дальше появтся еще нескромные желания. Но пока - так
Моя тележка andpronin -- стучите, если что.
Мой канал про обучению python с нуля и до мидла Андрей+=Пронин
/ @pypronin
Я в других сетях
🔗Вконтакте: CaptPronin
🔗Дзен: zen.yandex.ru/id/5fbd33919412...
#python #питон #программирование #Андрей_Пронин #собеседование #собес
Пікірлер: 136
Поддержать канал: www.tinkoff.ru/rm/pronin.andr... Обычно денежка идёт на книжки про питончик. Но иногда на светлое и тёмное. t.me/KZreadPronin Чат для общения подписчиков. Свободное общение, тестовые и вопросы с собесов
Побольше Олега на канале,очень круто,все время помогает и наводит на правильные мысли
@AlexandrSpb
3 ай бұрын
Да, с Олегом очень интересно получается!
А Олег-то вообще красава. Особенно мне понравилось его "не запуская интерпретатор - запусти код в голове на тестовых данных" - это прям вообще огонь. Ну а то, как он в течение минут 5 использовал все возможные синонимы слова "возвращать", не называя само слово - это вообще топ. :D Единственно: ему бы микрофон потише. А то когда он резко начинает говорить - я уж вздрагиваю. А по собесу - очень слабо, конечно. Нет понимания, что делает собственный код и как он будет выполняться. Нет понимания, что делает тот или иной метод строк. И, что самое главное, даже не спросил/не загуглил/не посмотрел доку по методам. И постоянно молчит. И не пытается думать и прилагать усилий... Очень было похоже, когда препод на экзамене "вытягивает студента на троечку". Ну а return str1 внутри функции - это совсем плохо. Однако, пусть и с наводящими подсказками, но некоторые вещи исправил. Это, конечно, найс, но это прям капля в море. Как там Андрей говорит: "Знания есть, но они очень не структурированы." И я бы еще добавил, что есть далеко не все знания. Тут явно нужно изучить базу. P.S. А про [.split()] и про .strip(), я так понимаю, намеренно ничего не сказали, чтобы не усугублять ситуацию? P.P.S. И в очередной раз хренею с ваших фидбеков. Я бы в жизни не смог так мягко все это озвучить. -_-
@beardedman721
11 ай бұрын
Со split() понятно, там нафиг никакие скобки не нужны, ибо этот метод сам создает список. А что не так с методом strip? 🤔
@dacn1s
10 ай бұрын
@@beardedman721 Непонятно почему .strip() применялся ко всему тексту, когда логично применять это к каждому слову в тексте, сплитанутым пробелом) В .strip() можно передать просто строку со всеми спец. символами, например, text.strip('.,:;!?#$%^'), а ещё удобнее import сделать строки символов. По итогу список слов нижнего регистра без спецсимволов можно было получить, например, вот так: # from string import punctuation # text = 'This, was? sooo$ helpful!@#! for^%!@ ^!me%!' # print([word.strip(punctuation) for word in text.lower().split()]) P.s. comprehension для короткого кода в примере, в функции можно как развернуть его так и оставить) P.p.s. 100% есть лучше вариант, но я совсеееем новичок ещё в программировании
Легко давать решение, когда ты не на собесе, а сидишь дома:) Умар явно перенервничал.
@Noir_Egoiste
Жыл бұрын
Поддерживаю, это слышно по голосу.
казалось бы о чем можно говорить , но какой же фидбек дал Олег , просто бомба ! Круто
Фидбэком Умара просто бомбезно "размотали" , в хорошем смысле слова конечно. Топ фидбэк! Смотрел с большим удовольствием. Спасибо и с наступающим!
Спасибо за проделанную работу! Олег красава! Не понимаю людей которые против него.. Нужно помнить с какой целью выходят эти трансляции. Мне как новичку был очень полезен его разбор и сам подход к написанию кода. Надеюсь еще увидим Олега)
@AndyPronin
Жыл бұрын
Обязательно
Как же я мечтаю о таком собесе. Ток начал учить код. Даже если не пройду не страшно, буду еже раз пробоваться
Забыл, Лайкосик влепить, новогодний будет😀 , с наступающим Вас, родные люди!
@AndyPronin
Жыл бұрын
С наступающим
@Maine__Coon__1
Жыл бұрын
@@AndyPronin благодарю, Андрей 🤝, Вас так же, поменьше болеть само главное.
кайф) если можно, хотелось бы еще собесов с решением задачек
@AndyPronin
Жыл бұрын
Будет)
Очень круто Олег проводит собес
@AndyPronin
Жыл бұрын
Олег хорош. Научился у него
Ребята вы боги! Офигенно!
В переменной str2 из строки str2 = [str1.split(‘ ‘)] будет находится не список из слов строки, а список в котором будет список из слов строки. То есть квадратные скобки вокруг split’а лишние в строке
Согласен с ребятами Олег топ, фидбек просто сочный )
Сенсей - ( Андрей Пронин ), если есть возможность, зови Олега на каждый собес. Человек очень грамотно все объясняет и подсказывает. Спасибо тебе за твои видосы. Думаю и я через полгода туда попаду. И спасибо, что подсказали про сайт Stepic. Уже 3 курс прохожу по пайтону . Пройду 5 курсов ( бесплатных ), потом только полезу в ООП и классы. Здоровья Вам.
@AndyPronin
Жыл бұрын
Олег будет появляться. Да
Как бы понравилось 👍
Олег. Круто. ❤
Есть проблемы с пониманием метода стрип, скобки обрамляющие список, ну и естественно ретёрн. Очень просто через сетдефолтс решается задача.
Ух, а Олег сделал этот собес необычным!
@AndyPronin
Жыл бұрын
С новым годом)
@wtf3995
Жыл бұрын
Взаимно)
Коммент в поддержку автора канала
@AndyPronin
Жыл бұрын
Камон) просто рад, что смотришь и полезно)
Итог стал очевиден когда результат сплита был помещён в квадратные скобки)) даже если проигнорировать имя переменной str (не хочу никого обидеть просто это совсем базовые вещи) После этого перемотал на фидбэк, фидбэк хороший))
@xewuss3750
Жыл бұрын
Именно на указанном Вами пункте как бы пришёл к аналогичному выводу.
ТАКС Split ведь и так возвращает список..
Или это очень сильный кейс волнения или я не понимаю как можно идти собеседоваться не понимая как работают возврат и луп. Как товарищу по Практикуму, было больно смотреть.
@AndyPronin
Жыл бұрын
это нервы. первый собес
Он сильно перенервничал. Ему явно нужно больше решать задач
Спасибо! (Извините поумничаю: defaultdict() - очень бы помог решить задачу. Вдруг кому будет интересно)
@freemy3778
Жыл бұрын
count бы помог
@codingjerk
Жыл бұрын
@@freemy3778Counter :)
for item in a_set: qty = a.count(item) if qty > qty_most_common: qty_most_common = qty most_common = item print(most_common) Result: как бы
@freemy3778
Жыл бұрын
почему бы через коллекции не решить?
ну тут по классике лайк от СЕООНЛИ
А разве strip() не удалит символы только сначала и конца строки? А не из всего текста?
@agilitytrade
Жыл бұрын
если указать в скобках символ то работает иначе .strip('X')
@user-pt8cz5je9u
Жыл бұрын
@@agilitytrade Ну вы попробуйте запустить функцию clean_str, она не работает. Она удалит символы только сначала и в конце текста. Собственно, как и описана работа strip() в библиотеке.
Вроде так и не озвучили как же развить способность решать задачи когда давали фидбек
@AndyPronin
Жыл бұрын
Леткод. Решать задачки
@just-igor
Жыл бұрын
Если хочешь научиться решать задачки, решай задачки
@silkcode3178
Жыл бұрын
@@just-igor Хорошо
@AndyPronin
Жыл бұрын
Леткод. Кодварс
А разве функция strip не по краям удаляет элементы???
@AndyPronin
Жыл бұрын
Зачем она? Нам надо определённые символы же удалить?
@gvadellupa9335
Жыл бұрын
@@AndyPronin вопрос, скорее всего, к тому, что Умар юзал именно strip(), хотя хотел скорее всего replace(). P.s. сори, что заваливаю комментами, бессонница )
@user-zo5gt9ck9b
Жыл бұрын
@@AndyPronin тоже помню, что word.strip(“,.:-?!”) возвращает копию с удалёнными знаками в начале и в конце, в скобках можно написать знаки, которые нужно удалить. Т.е. сначала сплит, а потом уже стрип к каждому слову. Могу ошибаться, неопытная🤷🏻♀️☺️
@AndyPronin
Жыл бұрын
@@user-zo5gt9ck9b запустить проверить рассказать ? Общество будет благодарно
@lilpunkrocket
Жыл бұрын
@@user-zo5gt9ck9b Вы всё верно говорите, str.strip удаляет из начала и конца указанные символы, т.е. в случае как на видео Умар использовал, данный метод удалил бы знаки только из начала и конца полной строки, а те что между, остались бы нетронутыми, потому разумно уже после str.split-а применять str.strip к каждому слово по отдельности.
Боже какой же он душный челик этот Олег. У меня было ровно такое собеседование, что дали легкое задание для меня, а потом как жандарм давали команды, не надо класс писать, не делай перевод строки, документация не нужна, аннотации фунций не пиши и тд. А я хотел типо красиво сделать, типо два варианта, одно решение, а другое более продвинутое с ассинхронностью, рекурсией и другими плюшками. Хотели увидеть говнокод, а видели что-то стоящее, у них бомбило, а может он побольше зарплаты захочет. Нельзя допустить. Я их в итоге замутил, сказав извините но мне сосредаточиться и решить задание в тишине. Челик говорит послушаем как ты думаешь, но слушают только его. Типо собес идет, не можешь сказать челик, это не макдональдс и ты не менеджер, успокойся. Ты дал задание так закрой варешник и жди. Про солид и проектирование будут кандидаты что сами тебе лекцию могут прочитать. Нет, это не помощь, а называется непрофессионализмом. И нет, таким образом ты не экономишь время собеса когда заставляешь удалить каждую вторую строчку и писать заново. Если конечно твоя цель это морально надавить чтобы слить кандидата. Увидите такую херню при собесе, значит это либо галера с дикими бабуинами вместо людей, либо тебя сливают. Попросите заткнуться и говорить только если ты задашь вопрос. Пишите код и комментируйте свои действия можете цитировать документацию и концепции, а если не дают вам рассалабиться - ливайте.
не смог досмотреть законил на моменте for i in lst: ... return .... Вроде бы человек купил курс не особо дешевый но не знает базы. НУ КАК ТАК
@AndyPronin
Жыл бұрын
Нервы. Адреналин. Есть бей-беги. Может быть такое?
@Pluxury30
Жыл бұрын
@@AndyPronin кнч может, но задание не такое сложное, я думаю это фактор записи видео
Вся задача: str.translate() + collections.Counter
@AndyPronin
Жыл бұрын
Вся задача на сортировку как выглядит?
Как будто Славу Комиссаренко слушаю)
@AndyPronin
Жыл бұрын
Кто эт
@AgrowainRHAlliance
Жыл бұрын
@@AndyPronin Stand Up комик. Кстати не плохой.
@AndyPronin
Жыл бұрын
@@AgrowainRHAlliance а.. Ок
@user-pt8cz5je9u
Жыл бұрын
Голос Олега на Славин похож)
import re from collections import Counter def count_words(text: str) -> dict: text = re.sub(r'\W', ' ', text.lower()) return Counter(text.split()) мб получше можно зареплейсить ненужные символы, но это первое, что пришло в голову
@AndyPronin
Жыл бұрын
А запятые? Точки?
@gvadellupa9335
Жыл бұрын
@@AndyPronin дак я меняю всё, что НЕ буква (\W) на пробелы, а дальше делаю сплит по пробелу
@AndyPronin
Жыл бұрын
@@gvadellupa9335 обычно алго собесы подразумевают отказ от библиотек же?
@gvadellupa9335
Жыл бұрын
@@AndyPronin ну Counter тут легко заменим обычным словарём, в принципе. А насчёт регулярок - не знаю, честно говоря... Возможно, нужно отказаться от них ) Просто задача не выглядела как алгосная. У неё даже формулировка человеческая была: "Создать облако тэгов". Символов довольно много, которые не являются буквами. Если есть договорённость, что у нас только точки и запятые, то в целом ОК. Но для общего же случая, кажется, регулярки хороший выход
@AndyPronin
Жыл бұрын
@@gvadellupa9335 не хватает трясущегося котика в эмодзи
Задачу дали некорректную в принципе. У нее нет решения. Задача была посчитать слова в тексте, сколько повторений. Но ничего не сказано про сам текст. Есть ли спецсимволы там, что есть понятие слова, что есть разделитель между словами, считаются ли словами 1-2 символа, отделенных пробелами. Можно ли удалять спецсимволы или нет, потому что там может быть пароль или спецсимволы вписаны внутри слова. В последнем варианте вообще тогда надо ставить вопрос что и как удалять из строки, чтобы отделять слова, что является разделителем слов. Уважаемые. Если в таких конторках как срандекс и прочие работают колхозники, которые не могут даже дать тех. задание корректное, зато hr отдел бесполезный на понтах и алгоритмы ненужные на собесах, то я вам скажу, что никто адекватный в такие конторы не пойдет работать. Мне жаль людей кто в подобное суется, по сути это рабы и вынужденные быть терпилами, мило улыбаться идиотскому начальству и вылизывать задницы. Кстати, смешит если тим лидами ставят баб не выше уровня мидла, это действительно смешно и говорит о многом.
Умар большой молодец, удачи ему. Но с такими навыками рано искать работу. Не в целях работодателя обучать базовым вещам. Сначала придется покарпеть по ночам над бесплатными проектами. Сделайте сначала какую-нибудь игру, или пару ТГ ботов.
@kuzminroman9440
Жыл бұрын
Когда писал - еще не понял, что это урок, сорри. Все круто 👍
Здравствуйте Андрей, как пройти у вас собеседование?) желание бешеное, прям прёт)))
@AndyPronin
Жыл бұрын
будет розугрыш скоро
@user-et2qk3sg9s
Жыл бұрын
@@AndyPronin Когда, как куда кому писать?🙏🙏🙏 это мой шанс
@AndyPronin
Жыл бұрын
@@user-et2qk3sg9s если не студент практикума, то в тележк t.me/KZreadPronin
@user-gw3ii4to3q
Жыл бұрын
@@AndyPronin Вам в личные сообщения писать, или в какую-то тему?
@AndyPronin
Жыл бұрын
@@user-gw3ii4to3q я там объявления кидаю
Списать всё на дичайший стресс во время собеса, иначе совсем всё печально. Хотя статистика собесов на канале показывает, что 90% такого уровня. А это уже какая никакая выборка. Реальный собес, разумеется, закончился бы не начавшись. И да это не ЯП плохой, это студенты поверили в волшебные пилюли. Реальность совсем иная.
@danieljkee
Жыл бұрын
Такое ощущение, что это не собес, а урок)))
Интервьюер мог бы дать соисканту хоть немного перердохнуть и стабилизировать мышление. А то напоминает какуюто тренировку спецназа. - СКОЛЬКО будет 22 + 17? НЕ Переставать СТРЕЛЯТЬ! СТРеляй и отвечай! Сколько будет 42 / 173? Ты проМАЗал! И еще 2 человека его из стороны в сторону трясут. Олег много говорил о ясности кода для 3х лиц. При этом полностью замещал мышление Умара своим, и не давал тому ни секунды вникнуть. "Думаю это не очень читаемый мыслекод". А тепепер стр, а тепереь ретерн, а теперь опять стр.
@AndyPronin
Жыл бұрын
Ну.. Так и надо, кажется. Сложно в тесте легче в реале. Умар достойно держался, но потом поплыл. Проанализирует ход разговора и укрепится
У меня в голове "ТАКС" отдается эхом! Братик, обрати внимание на это слово-паразит!
O(N * 6) насчитал...
Олег душный
А isalfa разве нельзя, оно ведь все символы, кроме букв уберет
@gvadellupa9335
Жыл бұрын
С чего? Сигнатура функции такая, что она просто скажет, является ли переданная строка буквенной, убирать она ничего не будет.
@user-ml7sv7gh4y
Жыл бұрын
@@gvadellupa9335 да, нет, isalfa передаёт буквы как 1 символ, потому, она не будет читать слова, она будет читать буквы!
@gvadellupa9335
Жыл бұрын
@@user-ml7sv7gh4y чекай документацию. "Return True if all characters in the string are alphabetic and there is at least one character, False otherwise" Можно передать как одиночный символ, так и строку произвольной длины. Но так или иначе, метод ничего не удаляет, а всего лишь возращает True или False в зависимости от строки
Как бы тэкс
А не, он буквы считать будет
ТАКССССССССС
Понятно, что это учебно-познавательный контент, но на самом деле, таких собесов с джунами не проводят, там всё гораздо сложнее и строже....
@user-uj3lx4ng4e
4 ай бұрын
А,это разве не сериал!?😮
И код меньше будет и читабельней
def txt(a): lst = a.split() #все слова текста в массиве for i in range(len(lst)): if lst[i][-1] in '!.,:?': lst[i] = lst[i][:-1] lst2 = set(lst) #кол-во уникальных слов текста a = [(lst.count(i), i) for i in lst2] return a Так можно решить? Всем здоровья
Такс
Нельзя усложнять код пока не решена задача, Умар почти ее решил, усложнением кода вы похоронили все его надежды, человек просто запутался... Как интервьювер мне Олег не понравился.
@gvadellupa9335
Жыл бұрын
Даже близко решена не была... Олег очень крутые наводящие вопросы спрашивал на каждом шагу, чтобы испытуемый не уходил в дебри.
@niktaub6407
Жыл бұрын
@@gvadellupa9335 Она и с подсказками не решена, задача была посчитать частоту слов в предложении и вывести топ5 частот. Не питонист, но мне кажется одного лишь split было достаточно перед тем как заполнять словарь, далее после заполнения словаря должно быть что-то типа сортировки по значению. В итоге подсказками Олег усложнил задачу до N^2 + N вместо 2N.
Интервьювер соискателя как ребенка за руку вел, нигде не давал продыху. Я бы ушел с такого собеса
@user-zy6bg9qx2o
Жыл бұрын
вопрос вообще нахрен нужен такой душный олег когда есть отладчик кода который за него скажет что у умара неправильно было
А еще норм Олег, что на 20:28 у чувака строка закрылась и появилась синтактическая ошибка в той части которую ты не позволил ему перевести. Это может тоже его ошибка. какая же галера. Ааа может потому что он не использовал эскейп символ \ , о котором знают только те которые знают еще джаваскрипт, то есть фулл-стаки. Да канешна, ты в 7 лет еще это знал ага. Да, "давай не будем код писать." (тоже Олег) Какже у меня начало гореть с этого оллуха, норм чувак сидит, а этот клоун перебивает и не дает ему подумать.
Отрефакторите: def foo(str): clean_words = {} list = str.split() for word in list: word = word.strip('.,#!?').lower() if word not in clean_words: clean_words[word] = 1 else: clean_words[word] += 1 return clean_words
@user-qf4ou9so9o
Жыл бұрын
Можно без метода if. clean_words[word] = clean_words.get(word, 0) + 1
блин как же ужасно смотрится онлайн кодинг интервьювер. Просто пример как НЕ НУЖНО ДЕЛАТЬ. Поумерь ЧСВ парень. В нашей конторе тебя по алгоритмама просто бы НЕ ПОНЯЛИ, Пока не получал такое УЖАСНОЕ впечатление на этом канале.
Очередной нулевой студент практикума, на одном канале(не буду скидывать ссылку что бы не подумали что реклама) тоже смотрел как проходит собес студент практикума, он тоже просто 0. Там видно что человек за 9 месяцев ниразу декоратор сам не писал. Зачем такая антиреклама я не понимаю. Ну сделайте вы что-то с курсом. Я уже год смотрю , было только 3 человека это парень который в ВШЭ препадовал алгоритмы и работает в faang, еще один парень который на с++ писал теперь работает в яндекс. Ну и вот последний парень у которого опыт 8 месяцев на фрилансе на django. То есть это люди которые уже были прокаченные, где успешные кейсы как практикум учит людей не из айти сферы? За что люди отдают 127к?
@AndyPronin
Жыл бұрын
Руслан уже уволился из ватсапп. Вернулся в Москву. Недавно стрим делали с ним
@luckytima2315
Жыл бұрын
@@AndyPronin ого неожиданно )
@ivanfuture8873
Жыл бұрын
Тут вопрос скорее не к собеседователям, а к студентам. На собес людей, видимо, случайно берут. А вот почему студент не подготовился на 100 из 100 - не пнятно. Приходя на такое публичное собеседование, надо понимать. Это собеседование у всех рекрутеров страны разом. Или ты просенешься с полной почтой офферов, или на тебя косится будут ближайшие пол года всей айти отраслью. П.С. Тут скорее чел все знает, но реально словил адреналиновый шок. Надо было валериану попить дней за 7. Глицинчика таблу под язык кинуть на собес.
@luckytima2315
Жыл бұрын
@@ivanfuture8873 Он первый раз услышал слово "экранирование" Не уверен что он ВСЕ знает))
@denispopov4679
Жыл бұрын
может конкуренты топять яндекс? )
Блин мужик самое ужасное интервью. Ейчар просто самого нисшего уровня из всех твоих видео - вопросы банальнейшие. И ничего не раскрывают о разработчитке. По поводу второго интервьюера якобы из яндекса. Зачем вести себя аля павел дуров. Немножко попроще можно. Люди которые знают в 10 раз больше чем ты ведут себя скромно.
Олег человечище
Мои 5 копеек) но для топ 5 - можно сразу заполнять dict встреченными word и вытеснять слова встречающиеся реже по достижению размера 5. Кто-то сделает?) string = '''Ann's 100$ aaa,. % bbb ccc aaa bbb bbb''' def foo(str): a = ord('a') alfabet = [chr(n) for n in range(a, a+26)] str = str.lower() + ' ' dct = dict() word = '' for c in str: if c in alfabet: word += c else: if len(word) > 2: if word in dct: dct[word] +=1 else: dct[word] = 1 word = ''; return dct
def topKWords(st: str, k=5) -> dict: st = ''.join([n if n.isalpha() else ' ' for n in st.lower()]).split() return dict(sorted([[n, st.count(n)] for n in set(st)], key=lambda x: (-x[1], x[0]))[:k])
import collections import string taskString = """Apart from counting words and characters, our online editor can help you to improve word choice and writing style, and, optionally, help you to detect grammar mistakes and plagiarism. To check word count, simply place your cursor into the text box above and start typing. You'll see the number of characters and words increase or decrease as you type, delete, and edit them. You can also copy and paste text from another program over into the online editor above. The Auto-Save feature will make sure you won't lose any changes while editing, even if you leave the site and come back later. Tip: Bookmark this page now.""" # Для начала, почистим таскстринг от ненужных символов badSymbs = [] for symb in taskString: if symb not in string.ascii_lowercase + string.ascii_uppercase + ' ': if symb not in badSymbs: badSymbs.append(symb) # Честно говоря, над чисткой долго не думал, первое, что пришло в голову # Код универсален, подходит для других символов, на тестовом примере проще было посмотреть самому for symb in badSymbs: taskString = taskString.replace(symb, '') # Апострофы юзаем как продолжение слова, не слышал дополнительного условия по этому поводу print(collections.Counter(taskString.split(' ')).most_common()[0][0]) # Выводим наиболее повторяющееся слово # При необходимости все есть в Collections.Counter - объекте # Усложняя задачу, и не используя Counter: cleanStr = taskString.split(' ') resDict = {word: cleanStr.count(word) for word in cleanStr} # Далее выбираем наибольшее: print(max(resDict, key=resDict.get)) # key= было успешно загуглено за неумением нормально юзать максимум с словарями ______________________________________________ Тайминг решения: 10 минут на полную задачу с Counter`om и без него. String импортируется лишь для замены ручной подстановки английского алфавита. Можно сделать быстрее, кстати, просто описав ненужные символы Выполнялась задача "Посчитать количество слов в строке, выбрать максимальное, вывести", надеюсь, что правильно понял суть :) Только исполнилось 17, сейчас подучу алгоритмики, и может быть на тестовый собес через пару месяцев?) Есть много интересного, что могу рассказать про коммерческий опыт в столь юные годы