题解 | #五八文字碰碰消#

五八文字碰碰消

http://www.nowcoder.com/questionTerminal/133c1e42c82c40968f032b501d719331


// 参考:********的22-括号生成 
// 思路:使用回溯记录数量,五看成左括号,八看成右括号
// 不符合的条件的直接剪枝 

/**
 * 输入整数n,返回可消除为空字符串的的n组"五八"字符串数量。
 * @param n int整型 
 * @return int整型
 */
function getTargetNumber(n) {
  let res = 0;
  backtracing(n, n);
  return res;

  function backtracing(fi, ei) {
    if (fi == 0 && ei == 0) {
      res++;
      return;
    }
    if (fi > 0) {
      backtracing(fi - 1, ei);
    }
    // 保证八比五少
    if (ei > fi) {
      backtracing(fi, ei - 1);
    }
  }
}

module.exports = {
  getTargetNumber: getTargetNumber,
};



全部评论

相关推荐

05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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