题解 | #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);
});


全部评论

相关推荐

01-12 22:27
武汉大学 Java
点赞 评论 收藏
分享
2025-12-23 18:51
中南大学 Java
唉又萌混过关:是不是那种收钱盖实习章的机构?
点赞 评论 收藏
分享
合适才能收到offe...:项目岗是什么岗?我看你有段好像跟策划运营相关,如果找运营的话第三段经历写详细点儿。 个人建议是把自我评价删了换成专业技能放在工作经验上或者下面。学生会那个也可以删,把第一个包装成店铺运营,写4-6给点。第三个也是写4-6个点。注意工作内容➕部分数据。 投递的时候BOS招呼用语改一下,换成我有xx工作经验,熟练掌握xx技能样式,也可以简历截图然后直接发送。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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