

- Главная
- Каталог
- Интернет технологии
- Python | LeetCode

Python | LeetCode
Разбираем задачи с LeetCode, с решением на языке программирования Python
Статистика канала
Полная статистикаchevron_right
Input
["RandomizedCollection", "insert", "insert", "insert", "getRandom", "remove", "getRandom"]
[[], [1], [1], [2], [], [1], []]
Output
[null, true, false, true, 2, true, 1]{}
import random
from collections import defaultdict
class RandomizedCollection:
def __init__(self):
self.dict = defaultdict(set)
self.list = []
def insert(self, val: int) -> bool:
self.dict[val].add(len(self.list))
self.list.append(val)
return len(self.dict[val]) == 1
def remove(self, val: int) -> bool:
if not self.dict[val]:
return False
index = self.dict[val].pop()
last_element = self.list[-1]
self.list[index] = last_element
self.dict[last_element].add(index)
self.dict[last_element].discard(len(self.list) - 1)
self.list.pop()
if not self.dict[val]:
del self.dict[val]
return True
def getRandom(self) -> int:
return random.choice(self.list){}
Ставь 👍 и забирай 📚 Базу знаний
Input: nums = [3,0,1]
Output: 2
Explanation: n = 3 since there are 3 numbers, so all numbers are in the range [0,3]. 2 is the missing number in the range since it does not appear in nums.{}
class Solution:
def missingNumber(self, nums):
nums.sort()
if nums[-1] != len(nums):
return len(nums)
elif nums[0] != 0:
return 0
for i in range(1, len(nums)):
expected_num = nums[i - 1] + 1
if nums[i] != expected_num:
return expected_num
return -1{}
Ставь 👍 и забирай 📚 Базу знаний
Input: expression = "(let x 2 (mult x (let x 3 y 4 (add x y))))"
Output: 14{}
class Solution:
def evaluate(self, expression: str) -> int:
def evaluate(expression, env):
if expression[0] != '(':
if expression[0].isalpha():
return env[expression]
return int(expression)
tokens = tokenize(expression)
if tokens[0] == 'let':
for i in range(1, len(tokens) - 2, 2):
env[tokens[i]] = evaluate(tokens[i + 1], env)
return evaluate(tokens[-1], env)
elif tokens[0] == 'add':
return evaluate(tokens[1], env) + evaluate(tokens[2], env)
elif tokens[0] == 'mult':
return evaluate(tokens[1], env) * evaluate(tokens[2], env)
def tokenize(expression):
tokens, token, parens = [], '', 0
for char in expression:
if char == '(':
parens += 1
if parens == 1:
continue
elif char == ')':
parens -= 1
if parens == 0:
tokens.append(tokenize(token))
token = ''
continue
elif char == ' ' and parens == 1:
if token:
tokens.append(token)
token = ''
continue
token += char
if token:
tokens.append(token)
return tokens
return evaluate(expression, {}){}
Ставь 👍 и забирай 📚 Базу знаний
Input
["Cashier","getBill","getBill","getBill","getBill","getBill","getBill","getBill"]
[[3,50,[1,2,3,4,5,6,7],[100,200,300,400,300,200,100]],[[1,2],[1,2]],[[3,7],[10,10]],[[1,2,3,4,5,6,7],[1,1,1,1,1,1,1]],[[4],[10]],[[7,3],[10,10]],[[7,5,3,1,6,4,2],[10,10,10,9,9,9,7]],[[2,3,5],[5,3,2]]]
Output
[null,500.0,4000.0,800.0,4000.0,4000.0,7350.0,2500.0]{}
class Cashier:
def __init__(self, n: int, discount: int, products: List[int], prices: List[int]):
self.n = n
self.discount = discount
self.productsPrices = dict(zip(products, prices))
self.customerCount = 0
def getBill(self, product: List[int], amount: List[int]) -> float:
self.customerCount += 1
bill = sum(self.productsPrices[prod] * amt for prod, amt in zip(product, amount))
if self.customerCount % self.n == 0:
bill *= (100 - self.discount) / 100.0
return bill{}
Ставь 👍 и забирай 📚 Базу знанийОтзывы канала
Каталог Телеграм-каналов для нативных размещений
Python | LeetCode — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 10.1K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 5.6, количество отзывов – 0, со средней оценкой 0.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 2797.2 ₽, а за 6 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий