[语言月赛 202505] 简易 JSON 解析

Luogu
IDLGB4332
Time1000ms
Memory512MB
DifficultyP2
2025字符串(入门)语言月赛
JSON 是常用的结构化文本,在本题中,我们将实现一个简易的 JSON 解析器。 JSON 格式可以理解为一个键值对结构,通过访问 key1,可以获取 val1,不同的键值对之间由英文半角逗号隔开。 ```json { key1: val1, key2: val2, key3: val3 } ``` 通常,键(key)是字符串。与 C/C++ 语言相同,JSON 文本中的字符串常量由 `""` 标识。在本题中,我们实现一个较为简单的 JSON 文本解析,假定值(val)仅由整数和 JSON 文本构成。 下面是一个符合本题假设的 JSON 文本例子。 ```json { "k1": 10, "k2": { "k21": 15, "k22": 20 }, "k3": 30 } ``` 给出压缩为一行的 JSON 文本(简单的去掉空白符)与每一级访问的键,给出访问的结果。保证这个结果是一个整数。 ## Input 输入的第一行为一个字符串,表示压缩为一行的 JSON 文本,**不含空格**。 输入的第二行为一个整数 $p$,表示依次访问的键的级数。 接下来 $p$ 行,每行一个字符串,表示本级访问的键。 ## Output 一行一个整数,表示访问结果。 [samples] ## Note 对于 $100\%$ 的测试数据: - JSON 文本长度不超过 $10^4$ - $1\le p \le 10$ - JSON 文本中的键长度不超过 $10$ - JSON 文本中为整数的值为不超过 $10^6$ 的正整数 - JSON 文本合法 特殊性质: - 对于 $70\%$ 的测试数据,JSON 文本中的值只有整数,不包含 JSON 嵌套。
Samples
Input #1
{"k1":10,"k2":{"k21":15,"k22":20},"k3":30}
1
k1
Output #1
10
Input #2
{"k1":10,"k2":{"k21":15,"k22":20},"k3":30}
2
k2
k22
Output #2
20
API Response (JSON)
{
  "problem": {
    "name": "[语言月赛 202505] 简易 JSON 解析",
    "description": {
      "content": "JSON 是常用的结构化文本,在本题中,我们将实现一个简易的 JSON 解析器。 JSON 格式可以理解为一个键值对结构,通过访问 key1,可以获取 val1,不同的键值对之间由英文半角逗号隔开。 ```json {   key1: val1,   key2: val2,   key3: val3 } ``` 通常,键(key)是字符串。与 C/C++ 语言相同,JSON 文本中的字符串常",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P2"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB4332"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "JSON 是常用的结构化文本,在本题中,我们将实现一个简易的 JSON 解析器。\n\nJSON 格式可以理解为一个键值对结构,通过访问 key1,可以获取 val1,不同的键值对之间由英文半角逗号隔开。\n\n```json\n{\n  key1: val1,\n  key2: val2,\n  key3: val3\n}\n```\n\n通常,键(key)是字符串。与 C/C++ 语言相同,JSON 文本中的字符串常...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments