Во многих сценариях программирования мы сталкиваемся с ситуациями, когда нам нужно найти самый популярный элемент в заданном списке. Эта задача становится более интересной, когда мы вводим ограничения, например исключение определенных элементов из рассмотрения. В этом сообщении блога мы рассмотрим решение на JavaScript и Python, позволяющее найти самое популярное животное в списке, исключая при этом запрещенных животных из рассмотрения.

Постановка задачи:

Нам дан список названий животных, представленный в виде строки. Наша задача — найти в списке самое популярное животное, рассматривая только незапрещённых животных. Имена животных не чувствительны к регистру, а запрещенные животные предоставляются в виде массива строк. Гарантируется, что в списке существует хотя бы одно незапрещённое животное.

Подход к решению:

Чтобы решить эту проблему, мы можем следовать пошаговому подходу:

  1. Преобразуйте строку названий животных в нижний регистр и разделите ее на массив названий животных. Это позволяет нам выполнять сравнения без учета регистра и легко перебирать имена животных.
  2. Создайте карту частот, чтобы подсчитать появление каждого животного в списке. Мы можем использовать объект или структуру данных Map в JavaScript для реализации карты частот.
  3. Переберите массив названий животных и подсчитайте появление каждого животного, исключая запрещенных животных. На этом этапе мы можем использовать простой цикл или методы массива, такие как forEach или уменьшить.
  4. Найдите животное с максимальной частотой на карте частот. Перебирайте карту частот и отслеживайте животное с наибольшим количеством.
  5. В качестве результата верните самое популярное животное.

Реализация JavaScript:

Вот реализация решения на JavaScript:

function findPopularAnimal(animals, forbiddenAnimals) {
  // Convert the animals string to lowercase and split it into an array of animal names
  const animalArr = animals.toLowerCase().split(" ");

  // Create a frequency map to count the occurrence of each animal
  const frequencyMap = {};

  // Iterate over the animal array and count the occurrence of each animal
  for (const animal of animalArr) {
    // Ignore the forbidden animals
    if (forbiddenAnimals.includes(animal)) {
      continue;
    }

    if (frequencyMap[animal]) {
      frequencyMap[animal]++;
    } else {
      frequencyMap[animal] = 1;
    }
  }

  let popularAnimal;
  let maxFrequency = 0;

  // Find the animal with the maximum frequency
  for (const animal in frequencyMap) {
    if (frequencyMap[animal] > maxFrequency) {
      maxFrequency = frequencyMap[animal];
      popularAnimal = animal;
    }
  }

  return popularAnimal;
}

// Test case
const animals = "Dog horse donkey CAT donkey cat bird donkey.";
const forbiddenAnimals = ["donkey"];

console.log(findPopularAnimal(animals, forbiddenAnimals)); // Output: "cat"

Реализация Python:

Вот реализация решения на Python:

def find_popular_animal(animals, forbidden_animals):
    # Convert the animals string to lowercase and split it into a list of animal names
    animal_list = animals.lower().split()

    # Create a frequency dictionary to count the occurrence of each animal
    frequency_dict = {}

    # Iterate over the animal list and count the occurrence of each animal
    for animal in animal_list:
        # Ignore the forbidden animals
        if animal in forbidden_animals:
            continue

        if animal in frequency_dict:
            frequency_dict[animal] += 1
        else:
            frequency_dict[animal] = 1

    popular_animal = None
    max_frequency = 0

    # Find the animal with the maximum frequency
    for animal, frequency in frequency_dict.items():
        if frequency > max_frequency:
            max_frequency = frequency
            popular_animal = animal

    return popular_animal

# Test case
animals = "Dog horse donkey CAT donkey cat bird donkey."
forbidden_animals = ["donkey"]

print(find_popular_animal(animals, forbidden_animals))  # Output: "cat"

Заключение:

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

Надеюсь, эта запись в блоге оказалась для вас полезной и помогла понять, как решить эту проблему с помощью JavaScript. Приятного кодирования!

👋Привет! Если у вас есть острые вопросы или вы просто хотите поздороваться, не стесняйтесь — я на расстоянии всего лишь сообщения. 💬 Вы можете связаться со мной по адресу [email protected].

🤝 Кстати, я думаю, у нас одинаковый интерес к разработке программного обеспечения — давайте подключимся к LinkedIn! 💻