题解 | #24点运算#

24点运算

https://www.nowcoder.com/practice/7e124483271e4c979a82eb2956544f9d

dfs 暴力

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
rl.on("line", function (line) {
  let m = {
    3: 3,
    4: 4,
    5: 5,
    6: 6,
    7: 7,
    8: 8,
    9: 9,
    10: 10,
    J: 11,
    Q: 12,
    K: 13,
    A: 1,
    2: 2,
  };
  let data = line.trim().split(" ");
  let res = "NONE";

  if (data.includes("joker") || data.includes("JOKER")) {
    return console.log("ERROR");
  }

  // 深度遍历
  function dfs(step, sum, arr, s) {
    if (sum == 24 && step == 4) {
      return (res = s);
    } else {
      step++;
      for (let i = 0; i < arr.length; i++) {
        let _arr = arr.slice();
        _arr.splice(i, 1);
        let num = m[arr[i]];
        if (step == 1) {
          dfs(step, num, _arr, `${arr[i]}`);
        } else {
          dfs(step, sum + num, _arr, `${s}+${arr[i]}`);
          dfs(step, sum - num, _arr, `${s}-${arr[i]}`);
          dfs(step, sum * num, _arr, `${s}*${arr[i]}`);
          dfs(step, sum / num, _arr, `${s}/${arr[i]}`);
        }
      }
    }
  }

  dfs(0, 0, data, "");

  console.log(res);
});


全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 20:45
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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