You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求实现:将数学公式字符串转换为可遍历的对象树函数

需求说明

我需要开发一个函数,该函数接收包含+、-、*、/运算的数学公式字符串作为参数,返回一个易于遍历的结构化对象,将公式的各个组成部分按规则拆分存储。

输入特征

  • 输入为包含数学公式的字符串
  • 公式不含=,并非方程
  • 仅包含整数,无浮点数
  • 整数可为正数或负数
  • 无x、y、z等变量
  • 可包含括号
测试用例

示例1:基础运算(单一运算符)

序号输入(字符串)输出(对象)
11{ values: [1], operation: null }
21+1{ values: [1,1], operation: "+" }
31+2+3{ values: [1,2,3], operation: "+" }
43-2-1{ values: [3,2,1], operation: "-" }
510*80{ values: [10,80], operation: "*" }
6100/10{ values: [100,10], operation: "/" }

示例2:含两种运算符的公式

+ 和 - 示例

示例1

输入:1+1-1
输出:

{
    values: [
      {
        values: [1, 1],
        operation: "+",
      },
      1,
    ],
    operation: "-",
};

示例2

输入:3+2-1+5
输出:

{
    values: [
      {
        values: [
          {
            values: [3, 2],
            operation: "+",
          },
          1,
        ],
        operation: "-",
      },
      5,
    ],
    operation: "+",
};

示例3

输入:3+2-1+5+10+7
输出:

{
    values: [
      {
        values: [
          {
            values: [3, 2],
            operation: "+",
          },
          1,
        ],
        operation: "-",
      },
      5,
      10,
      7
    ],
    operation: "+",
};

+ 和 / 示例

示例4

输入:1+2/3
输出:

{
    values: [
      1,
      {
        values: [2, 3],
        operation: "/",
      },
    ],
    operation: "+",
};

示例5

输入:2/3+1
输出:

{
    values: [
      {
        values: [2, 3],
        operation: "/",
      },
      1,
    ],
    operation: "+",
};

示例6

输入:1/2+3/4+5/6
输出:

{
    values: [
      {
        values: [1, 2],
        operation: "/",
      },
      {
        values: [3, 4],
        operation: "/",
      },
      {
        values: [5, 6],
        operation: "/",
      },
    ],
    operation: "+",
};

示例7

输入:1/2/3/4/5+6+7+8/9+10/11
输出:

{
    values: [
      {
        values: [1, 2, 3, 4, 5],
        operation: "/",
      },
      6,
      7,
      {
        values: [8, 9],
        operation: "/",
      },
      {
        values: [10, 11],
        operation: "/",
      },
    ],
    operation: "+",
};

/ 和 - 示例

示例8

输入:1-2/3
输出:

{
    values: [
      1,
      {
        values: [2, 3],
        operation: "/",
      },
    ],
    operation: "-",
};

/ 和 * 示例

示例9

输入:10/2*5
输出:

{
    values: [
      {
        values: [10, 2],
        operation: "/",
      },
      5,
    ],
    operation: "*",
};

示例3:含四种运算符的公式

示例1

输入:10/2*5+1-1*5/3+2*4
输出:

{
    values: [
      {
        values: [
          {
            values: [
              {
                values: [
                  {
                    values: [10, 2],
                    operation: "/",
                  },
                  5,
                ],
                operation: "*",
              },
              1,
            ],
            operation: "+",
          },
          {
            values: [
              {
                values: [1, 5],
                operation: "*",
              },
              3,
            ],
            operation: "/",
          },
        ],
        operation: "-",
      },
      {
        values: [2, 4],
        operation: "*",
      },
    ],
    operation: "+",
};

示例4:含括号的公式

示例1

输入:1+2*(3+2)
输出:

{
    values: [
      1,
      {
        values: [
          2,
          {
            values: [3, 2],
            operation: "+",
          },
        ],
        operation: "*",
      },
    ],
    operation: "+",
};

示例2

输入:(1+2*3)*2
输出:

{
    values: [
      {
        values: [
          1,
          {
            values: [2, 3],
            operation: "*",
          },
        ],
        operation: "+",
      },
      2,
    ],
    operation: "*",
};

示例3

输入:(1/1/10)+1/30+1/50
输出:

{
    values: [
      {
        values: [1, 1, 10],
        operation: "/",
      },
      {
        values: [1, 30],
        operation: "/",
      },
      {
        values: [1, 50],
        operation: "/",
      },
    ],
    operation: "+",
  };

其他场景

示例1

输入:-(1+2)
输出:

{
    values: [
      {
        values: [1, 2],
        operation: "+",
      },
    ],
    operation: "-",
};

...

内容的提问来源于stack exchange,提问作者user19485937

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 08:01:04