Лучший Python телеграм канал для новичков.
Цель: подготовка студентов, начинающих питонистов к нахождению первой работы.
@anothertechrock
РКН: https://kurl.ru/Jhcwp
Post #1341
2.21K

PY @pythonboost
Showing posts older than #1342 · Back to latest

def findMissedNumbers(nums: list[int]) -> list[int]:
return [i for i in range(1, len(nums) + 1) if i not in nums]
А вот более быстрый вариант, который работает за линейное время:def findMissedNumbers(nums: list[int]) -> list[int]:
return list(set(range(1, len(nums) + 1)) - set(nums))
#pythonзадача #coбесfindMissedNumbers(), на вход которой подается список длинной n, состоящий из целых чисел в диапазоне от 1 до n. Данная функция должна вернуть список всех чисел, которые отсутствуют во входящем списке, но входят в диапазон от 1 до n.findMissedNumbers([4,3,2,7,8,2,3,1]) --> [5, 6]
findMissedNumbers([1, 1, 1]) --> [2, 3]
Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.def countSegments(s: str) -> int:#pythonзадача #coбес
return len(s.split())
countSegments(), которая принимает на вход строку, а возвращает количество сегментов в данной строке. Под сегментами подразумеваются последовательности символов без пробела.countSegments('Напишите функцию countSegments()') --> 3
countSegments('Под сегментами подразумеваются последовательности') --> 4
Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.
def lexicalOrder(n: int) -> list[int]:#pythonзадача #coбес
return [int(i) for i in sorted(str(i) for i in range(1, n + 1))]
lexicalOrder(), которая принимает на вход целое число n, а возвращает список чисел в диапазоне от 1 до n, отсортированный в лексикографическом порядке. Программа должна работать за линейное время (O(n)), а расход пямяти O(1).lexicalOrder(13) --> [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9]
lexicalOrder(2) --> [1, 2]
Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.from collections import CounterПодумайте, как эту задачу можно решить без использования библиотеки
def canConstruct(s, t):
char_count_s = Counter(s)
char_count_t = Counter(t)
for char, count in char_count_s.items():
if count > char_count_t[char]:
return False
return True
collections.canConstruct(), которая принимает две строки, s и t. Данная функция должна возвращать True, если первую строку s можно составить из букв, которые входят во вторую строку t. Причем каждую букву из строки t можно использовать только один раз.canConstruct("aa", "ab") --> False
canConstruct("aa", "aab") --> True
Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.