Сложность: easy
Вам дана строка s, состоящая из строчных английских букв. Удаление дубликатов заключается в выборе двух соседних и одинаковых букв и их удалении. Мы многократно производим удаление дубликатов в s, пока не перестанем это делать. Верните конечную строку после того, как все такие удаления дубликатов будут произведены. Можно доказать, что ответ уникален.
Пример:
Input: stones = [2,7,4,1,8,1]
Output: 1
👨💻 Алгоритм:
1⃣Создай пустой стек для хранения символов строки.
2⃣Проходи по символам строки, добавляя каждый символ в стек, если он не совпадает с верхним элементом стека, иначе удаляй верхний элемент.
3⃣После прохождения по строке, собери оставшиеся символы в стеке в результирующую строку и верни ее.
😎 Решение:
function removeDuplicates($s) {
$stack = [];
for ($i = 0; $i < strlen($s); $i++) {
$char = $s[$i];
if (!empty($stack) && end($stack) === $char) {
array_pop($stack);
} else {
$stack[] = $char;
}
}
return implode('', $stack);
}Ставь 👍 и забирай 📚 Базу знаний