Освоение шоппинга на рынке: руководство HackerRank для Алекса

В этой статье блога мы углубимся в проблему HackerRank, когда у Алекса есть список товаров, которые можно купить на рынке. Мы рассмотрим различные методы, используя разговорный язык и примеры кода, чтобы помочь Алексу легко справиться с этой задачей. Итак, давайте начнем и овладеем искусством шоппинга на рынке!

Метод 1: подход грубой силы

Один из способов решения этой проблемы — использование грубой силы. Мы можем перебирать каждый элемент в списке и проверять, доступен ли он на рынке. Если да, то добавляем его в отдельный список, который будет содержать все предметы, которые сможет приобрести Алекс. Вот пример реализации на Python:

def purchase_items_brute_force(items, market):
    purchased_items = []
    for item in items:
        if item in market:
            purchased_items.append(item)
    return purchased_items
# Usage example
items_to_purchase = ["apple", "banana", "orange"]
market_items = ["banana", "grapes", "apple"]
result = purchase_items_brute_force(items_to_purchase, market_items)
print(result)  # Output: ["apple", "banana"]

Метод 2. Использование наборов для эффективного поиска

Вместо перебора списка рынков для каждого товара мы можем использовать наборы, чтобы сократить время поиска. Наборы имеют среднюю временную сложность O(1) для тестов на принадлежность. Мы можем преобразовать список рынков в набор, а затем перебрать элементы, чтобы проверить, существуют ли они на рынке. Вот пример реализации:

def purchase_items_with_sets(items, market):
    market_set = set(market)
    purchased_items = []
    for item in items:
        if item in market_set:
            purchased_items.append(item)
    return purchased_items
# Usage example
items_to_purchase = ["apple", "banana", "orange"]
market_items = ["banana", "grapes", "apple"]
result = purchase_items_with_sets(items_to_purchase, market_items)
print(result)  # Output: ["apple", "banana"]

Метод 3: использование понимания списка

Python предлагает краткий способ решения этой проблемы с помощью понимания списков. Мы можем перебирать список предметов и отфильтровывать предметы, присутствующие на рынке, с помощью условного оператора. Вот пример реализации:

def purchase_items_with_list_comprehension(items, market):
    return [item for item in items if item in market]
# Usage example
items_to_purchase = ["apple", "banana", "orange"]
market_items = ["banana", "grapes", "apple"]
result = purchase_items_with_list_comprehension(items_to_purchase, market_items)
print(result)  # Output: ["apple", "banana"]

В этой статье мы рассмотрели различные методы, которые помогут Алексу совершать покупки на рынке, используя задачу HackerRank. Мы обсудили подход грубой силы, используя наборы для эффективного поиска и используя понимание списков для лаконичного кода. Освоив эти методы, Алекс сможет эффективно решать подобные проблемы в будущем. Приятного кодирования!