判断扑克牌是否为顺子(JS保姆级讲解)

您所在的位置:网站首页 顺子是哪国人 判断扑克牌是否为顺子(JS保姆级讲解)

判断扑克牌是否为顺子(JS保姆级讲解)

2024-07-10 22:28| 来源: 网络整理| 查看: 265

题目

从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。

示例 1:

输入: [1,2,3,4,5] 输出: True

示例 2:

输入: [0,0,1,2,5] 输出: True

思路分析

1.顺子无重复数字,所以一旦有相同的数字存在,就返回false,(大王小王除外)

2.在无重复的情况下,最大数减最小数的值大于五,说明这五张牌不连续。

用来判断重复数字的我们用set.has(),有的话直接返回false;

代码实现 /** * @param {number[]} nums * @return {boolean} */ var isStraight = function (nums) { let set = new Set() let ma = 0; //最大值定义为0 let mi = 14; //最小值定义为14 for (let a of nums) { for in 遍历nums数组中的每一个值 if (a == 0) continue; //a==0说明是大小王,直接跳过不做处理 ma = Math.max(a, ma) //寻找最大值 mi = Math.min(a, mi) //寻找最小值 if (set.has(a)) return false //数组中已经存在a了吗? set.add(a); //数组中不存在则把a添加到数组中去 } return ma - mi < 5 //以上都执行完,再判断是否是5个连续的数字 };

欢迎大家一起讨论哦~~ 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3