Во многих сценариях программирования мы сталкиваемся с ситуациями, когда нам нужно найти самый популярный элемент в заданном списке. Эта задача становится более интересной, когда мы вводим ограничения, например исключение определенных элементов из рассмотрения. В этом сообщении блога мы рассмотрим решение на JavaScript и Python, позволяющее найти самое популярное животное в списке, исключая при этом запрещенных животных из рассмотрения.
Постановка задачи:
Нам дан список названий животных, представленный в виде строки. Наша задача — найти в списке самое популярное животное, рассматривая только незапрещённых животных. Имена животных не чувствительны к регистру, а запрещенные животные предоставляются в виде массива строк. Гарантируется, что в списке существует хотя бы одно незапрещённое животное.
Подход к решению:
Чтобы решить эту проблему, мы можем следовать пошаговому подходу:
- Преобразуйте строку названий животных в нижний регистр и разделите ее на массив названий животных. Это позволяет нам выполнять сравнения без учета регистра и легко перебирать имена животных.
- Создайте карту частот, чтобы подсчитать появление каждого животного в списке. Мы можем использовать объект или структуру данных Map в JavaScript для реализации карты частот.
- Переберите массив названий животных и подсчитайте появление каждого животного, исключая запрещенных животных. На этом этапе мы можем использовать простой цикл или методы массива, такие как forEach или уменьшить.
- Найдите животное с максимальной частотой на карте частот. Перебирайте карту частот и отслеживайте животное с наибольшим количеством.
- В качестве результата верните самое популярное животное.
Реализация 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! 💻