Expression Add Operators

题目来源
给一个数字字符串和一个target,问是否能够用+,-,*三种操作将字符串组合成target。
想了会实在不知道怎么进行划分,乘号的比较麻烦,如果只是加减的话应该还好一些。
代码如下:

class Solution {
public:
    vector addOperators(string num, int target) {
        vector res;
        calResult(num, target, res, 0, 0, "", 0);
        return res;
    }
    
    void calResult(string num, int target, vector &res, int pos, long long eval, string path, long long multed)
    {
        if (pos == num.size()) {
            if (target == eval)
                res.push_back(path);
            return;
        }
        long long len = num.size(), cur = 0;
        for (long long i=pos; i

主要有两点值得学习,一是记录上一个multed用来处理乘法操作。另一个是当某个数首字符是0的话就break。

你可能感兴趣的:(Expression Add Operators)