K
Kotlin | LeetCode
@easy_kotlin_task1.8K подп.
147просмотров
8.3%от подписчиков
18 марта 2026 г.
statsScore: 162
Задача: 942. DI String Match Сложность: easy Перестановка perm из n + 1 целых чисел всех целых чисел в диапазоне [0, n] может быть представлена в виде строки s длины n, где: s[i] == 'I', если perm[i] < perm[i + 1], и s[i] == 'D', если perm[i] > perm[i + 1]. Получив строку s, восстановите перестановку perm и верните ее. Если существует несколько допустимых перестановок perm, верните любую из них. Пример: Input: s = "IDID" Output: [0,4,1,3,2] 👨‍💻 Алгоритм: 1⃣Инициализировать два указателя low и high для отслеживания минимального и максимального числа, которые можно использовать в перестановке. 2⃣Создать массив perm длиной n + 1. Пройти по строке s: Если текущий символ равен 'I', добавить low в текущую позицию perm и увеличить low. Если текущий символ равен 'D', добавить high в текущую позицию perm и уменьшить high. Добавить оставшееся значение (low или high, так как они будут равны) в последнюю позицию perm. 3⃣Вернуть массив perm. 😎 Решение: class Solution { fun diStringMatch(s: String): IntArray { val n = s.length var low = 0 var high = n val perm = IntArray(n + 1) for (i in s.indices) { if (s[i] == 'I') { perm[i] = low++ } else { perm[i] = high-- } } perm[n] = low return perm } } Ставь 👍 и забирай 📚 Базу знаний
147
просмотров
1436
символов
Да
эмодзи
Нет
медиа

Другие посты @easy_kotlin_task

Все посты канала →
Задача: 942. DI String Match Сложность: easy Перестановка pe — @easy_kotlin_task | PostSniper