JSON — это текстовый формат, который большинство программ используют для обмена данными. JSON-объект записывается как {"key": "value", ...}.
Даны совпадающие списки ключей и значений (всё — текст), постройте строку JSON-объекта в этом точном формате:
- Начните с
{и закончите}. - Запишите каждую пару как
"key": "value", в заданном порядке, разделяя пары,(запятая и пробел). - Внутри строки обратный слэш
\записывайте как\\, а двойную кавычку"как\". Остальные символы остаются без изменений.
Реализуйте json_object_string(keys, values).
Ввод
keys, values: Списки одинаковой длины.
Вывод
Верните текст JSON. Пустой объект — это {}.
Ограничения
0 ≤ число пар ≤ 100
Ключи и значения содержат не больше 50 печатаемых символов
Примеры
Ввод:
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"}.
Ввод:
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. Следуйте условию и ограничениям выше.