Сложность: easy
Даны две строки ransomNote и magazine, верните true, если ransomNote можно составить, используя буквы из magazine, и false в противном случае.
Каждая буква из magazine может быть использована в ransomNote только один раз.
Пример:
Input: ransomNote = "a", magazine = "b"
Output: false
👨💻 Алгоритм:
1⃣Поскольку строки являются неизменяемым типом, их нельзя изменять, поэтому у них нет операций "вставки" и "удаления".
2⃣По этой причине необходимо заменять строку magazine новой строкой, в которой отсутствует символ, который мы хотели удалить.
3⃣Повторяйте этот процесс, пока не будут удалены все необходимые символы.
😎 Решение:
func canConstruct(_ ransomNote: String, _ magazine: String) -> Bool {
var magazine = magazine
for char in ransomNote {
if let index = magazine.firstIndex(of: char) {
magazine.remove(at: index)
} else {
return false
}
}
return true
}Ставь 👍 и забирай 📚 Базу знаний