Сложность: medium
Даны две строки одинаковой длины s и t. За один шаг вы можете выбрать любой символ строки t и заменить его другим символом.
Вернуть минимальное количество шагов, чтобы сделать t анаграммой строки s.
Анаграмма строки — это строка, которая содержит те же символы в другом (или том же) порядке.
Пример:
Input: s = "bab", t = "aba"
Output: 1
Explanation: Replace the first 'a' in t with b, t = "bba" which is anagram of s.
👨💻 Алгоритм:
1⃣Вычислить разницу частот символов в строках t и s, сохраняя результаты в массиве count.
2⃣Подсчитать количество символов, которые нужно заменить в t, добавляя в ans только положительные значения из массива count.
3⃣Вернуть ans как минимальное количество шагов для превращения t в анаграмму строки s.
😎 Решение:
class Solution {
public function minSteps($s, $t) {
$count = array_fill(0, 26, 0);
for ($i = 0; $i < strlen($s); $i++) {
$count[ord($t[$i]) - ord('a')]++;
$count[ord($s[$i]) - ord('a')]--;
}
$ans = 0;
for ($i = 0; $i < 26; $i++) {
$ans += max(0, $count[$i]);
}
return $ans;
}
}Ставь 👍 и забирай 📚 Базу знаний