**
扑克牌的顺子
**
题目出处https://www.acwing.com/problem/content/description/77/
题目要求:0作为大小王,可以当做任意数字来使用,若给出的五个数字(可能包括大小王)是连续的,则返回true,反之返回false。
注意:从本题的测试数据来看,特例:(在无0的情况下)10 J Q K A不算顺子,12345,23456算顺子。
题解:题目可能给出一个空vector,所以如果vector中为空返回false即可。
用一个散列表保存每个数字出现的次数。a[0]用来保存大小王的数量,a[1]-a[13]用来保存是否出现了A-K.
比如当前判断给出的数据能否组成12345,
只要判断a[0]+(a[1]+a[2]+a[3]+a[4]+a[5])是否为5即可,
特别注意:a[1]-a[13]之内的如果是0当作0,>0当作1计算即可,因为在组成顺子这一方面,2张也只能当一张用。然后把12345到9 10 J Q K的情况全部枚举一遍即可。有一个的ans为5就返回true,反之返回false。
AC代码如下: