и посмотреть медиа
C# LeetCode - задачи
и посмотреть медиа
LeetCode C#.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Задачи LeetCode на C#.
Задача: 811. Subdomain Visit Count Сложность: medium Веб-сайт с доменом "discuss.leetcode.com" состоит из различных поддоменов. На верхнем уровне у нас есть "com", на следующем уровне - "leetcode.com", и на самом нижнем уровне - "discuss.leetcode.com". Когда мы посещаем домен, такой как "discuss.leetcode.com", мы также автоматически посещаем родительские домены "leetcode.com" и "com". Домен с парным счетчиком - это домен, который имеет один из двух форматов "rep d1.d2.d3" или "rep d1.d2", где rep - это количество посещений домена, а d1.d2.d3 - это сам домен. Например, "9001 discuss.leetcode.com" - это домен с парным счетчиком, указывающий на то, что discuss.leetcode.com был посещен 9001 раз. Дан массив доменов с парными счетчиками cpdomains, верните массив доменов с парными счетчиками для каждого поддомена во входных данных. Вы можете вернуть ответ в любом порядке. Пример: Input: cpdomains = ["9001 discuss.leetcode.com"] Output: ["9001 leetcode.com","9001 discuss.leetcode.com","9001 com"] Explanation: We only have one website domain: "discuss.leetcode.com". As discussed above, the subdomain "leetcode.com" and "com" will also be visited. So they will all be visited 9001 times. 👨💻 Алгоритм: 1⃣Следуем указаниям из условия задачи. 2⃣Для адреса вида a.b.c, подсчитываем a.b.c, b.c и c. Для адреса вида x.y, подсчитываем x.y и y. 3⃣Для подсчета этих строк используем хеш-таблицу. Для разделения строк на требуемые части используем библиотечные функции split. 😎 Решение: using System; using System.Collections.Generic; public class Solution { public IList SubdomainVisits(string[] cpdomains) { var ans = new Dictionary(); foreach (var domain in cpdomains) { var parts = domain.Split(' '); var count = int.Parse(parts[0]); var frags = parts[1].Split('.'); for (int i = 0; i < frags.Length; i++) { var subdomain = string.Join(".", frags, i, frags.Length - i); if (ans.ContainsKey(subdomain)) { ans[subdomain] += count; } else { ans[subdomain] = count; } } } var res = new List(); foreach (var entry in ans) { res.Add($"{entry.Value} {entry.Key}"); } return res; } } Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!
Канал по мобильной кибербезопасности Android: malware, угрозы и способы защиты.
Канал Arash Nemat Zadeh: личные заметки, новости, полезная информация и тематический контент для интересующихся.