Этот пост является частью Алгоритмы проблемы решения серии. И это было изначально опубликовано на Блог Tk Отказ
Описание проблемы
Это Выкуп примечание проблема. Описание выглядит так:
Учитывая произвольную ransom Note String и другую строку, содержащую буквы из всех журналов, написать функцию, которая вернет True, если заметку выкупа можно построить из журналов; В противном случае это вернет ложь.
Каждая буква в загон записи журнала может использоваться только один раз в вашем выкупке.
Примеры
# ransomNote = "a", magazine = "b" # => false # ransomNote = "aa", magazine = "ab" # => false # ransomNote = "aa", magazine = "aab" # => true
Решение
def can_construct(ransom_note, magazine): if ransom_note == '': return True if magazine == '': return False letters_counter = {} for letter in magazine: if letter in letters_counter: letters_counter[letter] += 1 else: letters_counter[letter] = 1 for char in ransom_note: if char not in letters_counter or letters_counter[char] == 0: return False letters_counter[char] -= 1 return True
Ресурсы
- Обучение Python: Из грязи в князи
- Алгоритмы решения проблемы решения серии
- Обозначение Big-O для кодирования интервью и за пределами
- Учите питон с нуля
- Узнать объектно-ориентированное программирование в Python
- Структуры данных в Python: Освещенная интервью
- Структуры данных и алгоритмы в Python
- Структуры данных для кодирования интервью в Python
- Один месяц курс Python
Оригинал: “https://dev.to/teekay/algorithms-problem-solving-ransom-note-2f5f”