К списку задач
Легко Решено: 0 Процент решений: 0%

Собрать объект JSON

Преобразуйте ключи и значения в строку JSON-объекта, правильно экранируя кавычки и обратные слэши.

Чему вы научитесь

  • Записывать пары ключ-значение в синтаксисе JSON
  • Экранировать кавычки и обратные слеши внутри строк
  • Соединять части через разделитель

Условие

JSON — это текстовый формат, который большинство программ используют для обмена данными. JSON-объект записывается как {"key": "value", ...}.

Даны совпадающие списки ключей и значений (всё — текст), постройте строку JSON-объекта в этом точном формате:

  • Начните с { и закончите }.
  • Запишите каждую пару как "key": "value", в заданном порядке, разделяя пары , (запятая и пробел).
  • Внутри строки обратный слэш \ записывайте как \\, а двойную кавычку " как \". Остальные символы остаются без изменений.

Реализуйте json_object_string(keys, values).

Ввод

keys, values: Списки одинаковой длины.

Вывод

Верните текст JSON. Пустой объект — это {}.

Ограничения

0 ≤ число пар ≤ 100

Ключи и значения содержат не больше 50 печатаемых символов

Примеры

Пример 1
Ввод:
keys = ["name", "city"]
values = ["Ada", "London"]

Ожидаемый вывод:
expected = "{\"name\": \"Ada\", \"city\": \"London\"}"
Ввод:
std::vector<std::string> keys = {"name", "city"};
std::vector<std::string> values = {"Ada", "London"};

Ожидаемый вывод:
std::string expected = "{\"name\": \"Ada\", \"city\": \"London\"}";
Ввод:
string[] keys = new string[] {"name", "city"};
string[] values = new string[] {"Ada", "London"};

Ожидаемый вывод:
string expected = "{\"name\": \"Ada\", \"city\": \"London\"}";

Пояснение

Каждая пара становится "key": "value": {"name": "Ada", "city": "London"}.

Пример 2
Ввод:
keys = ["quote"]
values = ["say \"hi\""]

Ожидаемый вывод:
expected = "{\"quote\": \"say \\\"hi\\\"\"}"
Ввод:
std::vector<std::string> keys = {"quote"};
std::vector<std::string> values = {"say \"hi\""};

Ожидаемый вывод:
std::string expected = "{\"quote\": \"say \\\"hi\\\"\"}";
Ввод:
string[] keys = new string[] {"quote"};
string[] values = new string[] {"say \"hi\""};

Ожидаемый вывод:
string expected = "{\"quote\": \"say \\\"hi\\\"\"}";

Пояснение

Кавычки внутри значения экранируются обратным слэшем: {"quote": "say \"hi\""}.

Как подступиться

Сначала попробуйте сами, затем открывайте подсказки по одной.

Подсказка 1

Соберите каждую пару "key": "value" отдельно, затем соедините их.

Подсказка 2

Экранируйте обратные слеши раньше кавычек, чтобы не экранировать собственные экранирования.

Подсказка 3

Даже пустому вводу нужны фигурные скобки: {}.

Ожидаемая сложность

время O(общая длина), доп. память O(общая длина)

Ссылки

Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.