首页 > 编程语言 >程序员面试金典---20

程序员面试金典---20

时间:2023-05-03 22:11:38浏览次数:36  
标签:count char 20 金典 --- length let board return

井字游戏

思路:

朴素求解

  1. 先判断横、竖、两个对角线
  2. 如果前面判断无法得出结果,用函数countSpace判断是否有空格,有代表没有填满,输出Pending、否则输出Draw

代码:

/**
 * @param {string[]} board
 * @return {string}
 */
var tictactoe = function (board) {
  if (board.length == 1 || !board[0][0]) {
    return board[0][0];
  }
  
  if (horizontal(board) || vertical(board) || 
      diagonal(board) || negativeDiagonal(board)) {
    return horizontal(board) || vertical(board) || 
           diagonal(board) || negativeDiagonal(board)
  }

  return countSpace(board) ? "Pending" : "Draw";
};

function horizontal(board) {
  for (let i = 0; i < board.length; i++) {
    let count = 1;
    let char = board[i][0];

    for (let j = 1; j < board[i].length; j++) {
      if (char == ' ' || char !== board[i][j]) {
        break;
      } else {
        count++;
      }
    }

    if (count === board.length) {
      return char;
    }
  }
}


function vertical(board) {
  for (let i = 0; i < board.length; i++) {
    let count = 1;
    let char = board[0][i];

    for (let j = 1; j < board[i].length; j++) {
      if (char == ' ' || char !== board[j][i]) {
        break;
      } else {
        count++;
      }
    }

    if (count === board.length) {
      return char;
    }
  }
}

function diagonal(board) {
  let count = 1;
  let char = board[0][0];

  for (let i = 1; i < board.length; i++) {
    if (char == ' ' || char !== board[i][i]) {
      break;
    } else {
      count++;
    }
  }

  if (count === board.length) {
    return char;
  }
}

function negativeDiagonal(board) {
  let count = 1;
  let j = board.length - 1;
  let char = board[0][j];

  for (let i = 1; i < board.length; i++) {
    if (char == ' ' || char !== board[i][j - 1]) {
      break;
    } else {
      count++;
    }
    j--;
  }
  if (count === board.length) {
    return char;
  }
}
function countSpace(board) {
  for (let i = 0; i < board.length; i++) {
    for (let j = 0; j < board[i].length; j++) {
      if (board[i][j] == ' ') {
        return true;
      }
    }
  }

  return false;
}

阶乘尾零

代码:

/**
 * @param {number} n
 * @return {number}
 */
// 除5取整的问题
var trailingZeroes = function(n) {
    let res = 0
    while(n !== 0){
        n = Math.floor(n / 5)
        res += n
    }
    return res

};

标签:count,char,20,金典,---,length,let,board,return
From: https://www.cnblogs.com/dgqp/p/17369784.html

相关文章

  • NYK --ssh密钥指定与GTFObins
    主机发现sudonmap-sn192.168.28.0/24tcp端口扫描sudonmap-sT--min-rate10000-p-192.168.28.33-oAnmapscan/portstcp版本扫描sudonmap-sT-sC-sV-O-p22,80192.168.28.33-oAnmapscan/detial udp扫描sudonmap-sU--top-ports20-p-192.168.28.33-oA......
  • 力扣---1003. 检查替换后的词是否有效
    给你一个字符串s,请你判断它是否有效。字符串s有效需要满足:假设开始有一个空字符串t="",你可以执行任意次下述操作将t转换为s:将字符串"abc"插入到t中的任意位置。形式上,t变为tleft+"abc"+tright,其中t==tleft+tright。注意,tleft和tright可能为......
  • 2023-05-03:给你一棵 二叉树 的根节点 root ,树中有 n 个节点 每个节点都可以被分配一个
    2023-05-03:给你一棵二叉树的根节点root,树中有n个节点每个节点都可以被分配一个从1到n且互不相同的值另给你一个长度为m的数组queries你必须在树上执行m个独立的查询,其中第i个查询你需要执行以下操作:从树中移除以queries[i]的值作为根节点的子树题目所......
  • [极客大挑战 2019]HardSQL,wp
    一:分析既然说了是HardSQL,肯定就不是万能密码这种简单的了1.首先判断字符型还是数字型我们首先输入payload:username=admin'--+&password=1发现好像有什么被过滤掉了。然后检查过滤符号,这里可以直接用bp爆破看看过滤了哪些字符,也可以简单测试一下这里我猜测过滤了空格, 然......
  • 开源+实时+数据即服务的架构——唐建法受邀出席2023数据技术嘉年华【干货回顾】
    点击报名假设原料是一个产品公司的SaaS业务系统、一套CRM、一套工单系统、一个内部人事系统,和内部研发管理系统;现在给到你40min的时间,能做出怎样的数据菜肴?如果这里的厨师是Tapdata,那么答案可以是一个实时业务经营看板,也可以是一个运营自动化的流程。如此高效的秘诀是什......
  • linux-kubernetes(二进制部署)
    参考笔记:https://www.cnblogs.com/yinzhengjie/p/17069566.html一、环境准备准备5台机器,二进制部署K8S高可用集群:主机ipk8s-master0110.0.0.201k8s-master0210.0.0.202k8s-master0310.0.0.203k8s-node0110.0.0.204k8s-node0210.0.0.205二、K8S......
  • linux-部署harbor的https认证
    一、安装docker1.下载docker的rpm包[[email protected]~]#ll-rw-r--r--1rootroot101239922Apr1215:29docker-rpm-20_10_24.tar.gz2.解压并安装软件包[[email protected]~]#tarxfdocker-rpm-20_10_24.tar.gz[[email protected]~]#......
  • Python flask-sqlalchemy
    安装pip3installmysql-connector-pythonpipinstallflask_sqlalchemy /setting.pyclassConfigs:#数据库信息MYSQL_USER=''MYSQL_PWD=''MYSQL_HOST=''MYSQL_PORT=''DBNAME=''......
  • Python - 字典视图
    dict的实例方法.keys()、.values()、.items()分别返回dict_keys、dict_values和dict_items类的实例。这些字典视图是dict内部实现使用的数据结构的只读投影。Python2种对应的方法返回列表,重复dict中已有的数据,有一定的内存开销。另外,视图还取代了返回迭代器的旧方法>>>d......
  • vue学习 第十天(2) HTML5的新特性 ----- 语义化标签(布局标签)/ 多媒体标签(video、
    目标:能够说出3~5个HTML5新增布局和表单标签能够说出CSS3的新增特性有哪些 HTML5的新特性 HTML的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。新特性都有兼容性问题,基本是IE9+以上版本......