Задача 15: Совпадение DI строк

Напишите определение функции diStringMatch(s), которая принимает один аргумент:

  • s (строка) — строка, состоящая из символов 'I' и 'D', которая описывает порядок перестановки чисел.

Функция должна вернуть одну из возможных перестановок perm длины n + 1 (где n — длина строки s), состоящую из всех целых чисел в диапазоне [0, n], которая соответствует следующему правилу:

  • Если s[i] == 'I', то perm[i] < perm[i + 1].
  • Если s[i] == 'D', то perm[i] > perm[i + 1].

Если существует несколько подходящих перестановок, можно вернуть любую из них.


Примеры

Пример 1:
Ввод: s = "IDID"
Вывод: [0, 4, 1, 3, 2]
Объяснение:
Строка s соответствует следующему порядку:

  • 'I': 0 < 4,
  • 'D': 4 > 1,
  • 'I': 1 < 3,
  • 'D': 3 > 2.

Пример 2:
Ввод: s = "III"
Вывод: [0, 1, 2, 3]
Объяснение:
Строка s соответствует следующему порядку:

  • 'I': 0 < 1,
  • 'I': 1 < 2,
  • 'I': 2 < 3.

Пример 3:
Ввод: s = "DDI"
Вывод: [3, 2, 0, 1]
Объяснение:
Строка s соответствует следующему порядку:

  • 'D': 3 > 2,
  • 'D': 2 > 0,
  • 'I': 0 < 1.

0

Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии