题解 | 健身动作解析2

健身动作解析2

https://www.nowcoder.com/practice/60deb4014fb14e2db8c995ecf41f4cf1

描述:
你是一个高智能健身数据提取引擎。你需要从训练文本中识别动作、重量、组数、次数,并处理复杂的逻辑继承和跨动作计算。

1. 核心属性映射表:

动作与杆重 (Bar Weight):

SQUAT (深蹲/蹲腿), DEADLIFT (硬拉/拉背): 25kg

BENCH_PRESS (卧推/平板卧推), OHP (推举/肩推), INCLINE_PRESS (上斜): 15kg

OTHER: 0kg

2. 重量提取与“深度继承”规则:

显式重量:

直接总重:如“120kg”,则 final_weight = 120.0。

单边重量:如“一边25”、“每边40”,计算公式:(单边重量 * 2) + 当前动作杆重。

隐式继承 (核心逻辑):

若当前动作完全未提及重量,必须向上追溯最近的一个动作的重量参数。

参数类型对齐:

若上一个动作是“单边”描述,当前动作继承其单边数值,并结合当前动作的杆重重新计算。

若上一个动作是“直接总重”,当前动作直接继承该总重数值。

3. 训练模式与属性继承:

STANDARD (标准): "5x5", "5*5" -> sets: 5, reps: 5

REST_PAUSE (+号): "10+5+3" -> sets: 1, reps: 18

CLUSTER (逗号): "3,3,3" -> sets: 元素个数, reps: 元素代表的数值

继承规则:若当前动作未提及组数、次数或模式,完全沿用上一个动作的解析结果。

计算步骤 (必须在推理中体现):

动作识别:识别出所有动作并对应到枚举值。

参数回溯:对每个动作检查重量、组数、次数,缺失则从上文“抓取”参数。

动态计算:根据继承到的参数类型(单边值或总重值),结合本动作专属杆重计算 final_weight。

JSON 构造。

输入描述:
一段健身训练文本。

输出描述:
先输出推理过程,最后输出 JSON:

JSON
{
  "entries": [
    {
      "action": "ENUM",
      "final_weight": float,
      "sets": int,
      "reps": int,
      "exercise_mode": "STANDARD/REST_PAUSE/CLUSTER"
    }
  ]
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务