250. Межпространство

Не решаласьЛёгкая

Вы работаете в IASN, межгалактической организации упорядочивания всего вокруг. Фактически, вы производите и проверяете стандартные межгалактичекие коды. Это очень важная работа, ведь, используя такие коды, можно существенно упростить взаимодействие между различными межгалактическими сообществами и организациями.

Ваш руководитель на прошлой неделе закончил работу над очередной спецификацией и поставил вам задачу написать валидатор, который состоит из двух частей — функции разбора номера и функции проверки.

В состав кода входят:

  1. Код пространства: буквы от G до U (кроме I и J, их запретил Альянс) и три цифры от 3 до 8 (например, M368)
  2. Код отрасли: B, T
  3. Отраслевые субкоды, состав зависит от кода отрасли
  4. Произвольный числовой номер в 35-ричной системе: цифры и буквы (кроме Z) длиной от 1 до 24 символов
  5. Просто буква Z, чтобы знать, где конец

Отраслевые субкоды зависят от отрасли и могут быть следующими:

  • Биологическая — коды отрасли B
    • Форма жизни: Углеродная C, Кремниевая K, Метановая M, Борная B
    • Биологическое царство: Грибы G, Животные J, Растения Р
  • Техногенная — код отрасли T
    • Форма жизни: Омники O, Роботы R, Суперсистемы S
    • Техногенное царство: Java J, V8 8, Механика M, Энергия E

Примеры:

  • O464TR849BM182BDZ — Пространство O464, Техногенная, Роботы на V8, ID экземпляра 49BM182BD
  • U345BMG123456789ABCDEFZ — Пространство U345, Биологическая, Метановые грибы, ID экземпляра 123456789ABCDEF

Результат работы:

IASNРезультат
O464TR849BM182BDZ["O464", "T", "R8", "49BM182BD"]
U345BMG123456789ABCDEFZ["U345", "B", "MG", "123456789ABCDEF"]

Вам предстоит проверить номер на корректность, отсеять ненужные, из нужных получить необходимую информацию.

Формат ввода

Строка IASN

Формат вывода

Массив с 4-мя строками или null в случае некорректных данных.

Примечание

В качестве решения предоставьте функцию следующего вида:

/** @returns Array<string|null> */
module.exports = function(inputString) {
   // ваш код здесь
}

Ограничения

Ограничение времени

100 с

Ограничение памяти

64 МБ

Пример 1

Ввод
G333TR81Z
Вывод
["G333","T","R8","1"]

Теги

JavaScript Node.js 12
Нужно войти, чтобы отправить решение.Войти