码迷,mamicode.com
首页 > 其他好文 > 详细

扑克牌顺子

时间:2018-07-04 18:59:35      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:sort函数   排序规则   扑克牌顺子   span   tor   pre   连续   item   class   

题目描述

从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10位数字本身,A为1,J为11,Q为12,K为13,而大王,小王可以看成任意数字。为了方便我们将大小王看成0。

思路:

1.找出5张牌中得大小王,即0的个数

2.将牌排序,找出相邻牌中的空隙数

3.如果空缺的总数小于或等于0的个数,那么数组是连续的。

在下面的代码中,使用了sort函数,第一个参数为数组首地址,第二个参数为数组尾地址,第三个参数为排序规则。默认为升序

我的代码:

    bool IsContinuous( vector<int> numbers ) {
        int len = numbers.size();
        if(len<5)
            return false;
        sort(numbers.begin(),numbers.end());
        int ZeroNum = 0;
        int GapNum = 0;
        for(int i = 0; i < len;i++)
        {
            if(numbers[i] == 0)
                ZeroNum++;
        }
        int x = ZeroNum;
        for(int j = ZeroNum+1; j < len;j++)
        {
            if(numbers[j] == numbers[x])
                return false;
            GapNum += numbers[j] - numbers[x] -1;//正常是相差一个,如果不连续的话就是间隔
            x = j;
        }
        return ZeroNum >= GapNum ? true : false;
    }

 

扑克牌顺子

标签:sort函数   排序规则   扑克牌顺子   span   tor   pre   连续   item   class   

原文地址:https://www.cnblogs.com/Lune-Qiu/p/9264526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!