资讯专栏INFORMATION COLUMN

记录计算顺子(12,3,4或者9,0,1,2)的方法

Hancock_Xu / 1686人阅读

摘要:顺子号或者或者之类的工作中写的那个还有,晚上研究了下终于写出个没有的方法,分享下,如果看到这篇文章还有更好办法的欢迎交流,共同进步。这边的数组比如这边的数组比如只要和是顺子并且长度总和等于,或者的长度等于那么数组就是顺子的情况

顺子号:1,2,3,4,5或者9,0,1,2,3,4或者7,8,9,0,1之类的
工作中写的那个还有bug,晚上研究了下终于写出个没有bug的方法,分享下,如果看到这篇文章还有更好办法的欢迎交流,共同进步。

function checkShunzi(arr) {
    arr = arr.sort();
    if (arr.indexOf(0) != -1 && arr.indexOf(9) != -1) {
        let arr0 = []; //0这边的数组比如[0,1,2,3,8,9]->[1,2,3]
        let arr9 = []; //9这边的数组比如[0,1,2,3,7,8,9]->[7,8]
        //只要arr0和arr9是顺子并且长度总和等于arr.length-2,或者arr9的长度等于arr.length-1那么数组arr就是顺子
        for (let i = 0; i < arr.length - 2; i++) {
            let j = i + 1;
            if (arr[j] - arr[i] == 1) {
                arr0.push(arr[j]);
            } else {
                break;
            }
        }
        for (let i = arr.length - 1; i > -1; i--) {
            let j = i - 1;
            if (arr[i] - arr[j] == 1) {
                arr9.unshift(arr[j]);
            } else {
                break;
            }
        }
        return isShunNum(arr0) && isShunNum(arr9) && ((arr.length - 2 - arr0.length == arr9.length) || arr9.length == arr.length - 1); //arr0.length==arr.length-1,[0,1,2,3,4,5,6,7,8,9]的情况
    }

    function isShunNum(arr) {
        return arr.every(function (item, index, arr) {
            return 0 === index || (Number(item) + 10 - 1) % 10 == arr[index - 1];
        })
    }

    return isShunNum(arr);
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88280.html

相关文章

  • 【刷算法】扑克牌顺子

    摘要:上面的张牌就可以变成大小王分别看作和。现在要求你使用这幅牌模拟上面的过程然后告诉我们的运气如何,如果牌能组成顺子就输出,否则就输出。例如可以看做可以看做但是类似于就不行,因为和之间需要两个数字来补,但是只有一个,所以不能构成顺子。 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的...

    darkbug 评论0 收藏0
  • nodejs版,麻将智能机器人出牌算法

    摘要:相关术语麻将应对的五种标准状态,是吃碰杠听胡。所以,算法变成了评估牌面积分的算法,越高说明牌越好,也说明这副牌可以胡的概率更高。表格生成有了评估方法后,我们只需要对每个花色的手牌,分配张牌给他,然后计算胡牌概率,就可以知道牌面积分。 nodejs版,麻将智能机器人出牌算法。 简述 麻将,起源于中国,粤港澳及闽南地区俗称麻雀,由中国古人发明的博弈游戏,娱乐用具,一般用竹子、骨头或塑料制成...

    ShevaKuilin 评论0 收藏0
  • 基于状态机模型斗地主游戏(NodeJs&SocketIO)

    摘要:系统结构系统考虑使用和实现服务器端逻辑,前端使用。逻辑流程主要逻辑包括用户进入游戏等待对家进入游戏游戏过程结束统计这个过程。 1. 系统结构 系统考虑使用Nodejs和SocketIo实现服务器端逻辑,前端使用HTML5。showImg(https://segmentfault.com/img/remote/1460000007643089); 2. 逻辑流程 1 . 主要逻辑包括用户...

    NoraXie 评论0 收藏0
  • 基于状态机模型斗地主游戏(NodeJs&SocketIO)

    摘要:系统结构系统考虑使用和实现服务器端逻辑,前端使用。逻辑流程主要逻辑包括用户进入游戏等待对家进入游戏游戏过程结束统计这个过程。 1. 系统结构 系统考虑使用Nodejs和SocketIo实现服务器端逻辑,前端使用HTML5。showImg(https://segmentfault.com/img/remote/1460000007643089); 2. 逻辑流程 1 . 主要逻辑包括用户...

    xcold 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<