首页 > 试题广场 >

健身动作解析

[编程题]健身动作解析
  • 热度指数:61 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

给定一段非结构化的健身训练文本,根据以下规则提取信息并输出JSON。

1.动作名称映射:将文本中的动作名称映射为标准枚举值。映射规则为:“卧推”、“平板卧推”、“Bench Press”映射为BENCH_PRESS;“上斜”、“上胸”映射为INCLINE_PRESS;“深蹲”、“蹲腿”、“Squat”映射为SQUAT;“硬拉”、“拉背”、“Deadlift”映射为DEADLIFT;“推举”、“肩推”映射为OHP;其他动作映射为OTHER

2.组数与次数解析:若文本中出现“AxB”格式(如“5x5”),则解析为组数(Sets)= A,次数(Reps)= B。

3.重量归一化:目标单位为千克(kg)。若文本中出现磅(lbs或磅),需转换为千克(除以2.2)。若文本提及如“一边20kg”,则重量计算为:重量 = (单边重量 × 2) + 20(默认空杆20kg)。

4.容量计算:训练容量 = 重量(kg)× 组数 × 次数。

多动作处理:若文本中包含多个动作,需分别解析并输出多条记录。


输入描述:
一段自然语言描述的健身训练文本。


输出描述:
{
    "exercises": [
        {
            "name": "ENUM",
            "data": {
                "weight_kg": float, //一位小数
                "sets": int,
                "reps": int
            },
            "volume_calc": float //容量计算
        }
    ]
}
示例1

输入

今天练胸,平板卧推 100kg 5x5,感觉状态不错。

输出

{"exercises":[{"name":"BENCH_PRESS","data":{"weight_kg":100.0,"sets":5,"reps":5},"volume_calc":2500.0}]}

备注:
提示词学习 提示词工程指南

这道题你会答吗?花几分钟告诉大家答案吧!