[九度][何海涛] 扑克牌顺子 - chkkch - 博客园
先排序,然后统计0的个数,然后在统计其他数字的间隔,如果0个个数大于其他数字的间隔则可以,否则不行,另外如果有相同的数字则肯定没有顺子了。
http://www.cnblogs.com/tractorman/p/4105086.html
Read full article from [九度][何海涛] 扑克牌顺子 - chkkch - 博客园
LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!"红心A,黑桃3,小王,大王,方片5","Oh My God!"不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变成"1,2,3,4,5"(大小王分别看作2和4),"So Lucky!"。LL决定去买体育彩票啦。
先排序,然后统计0的个数,然后在统计其他数字的间隔,如果0个个数大于其他数字的间隔则可以,否则不行,另外如果有相同的数字则肯定没有顺子了。
16 sort(a, a + n); 17 18 int kingCount = 0; 19 int index = 0; 20 while(index < n && a[index] == 0) 21 { 22 kingCount++; 23 index++; 24 } 25 26 int count = 0; 27 bool same = false; 28 for(int i = index + 1; i < n; i++) 29 if (a[i] == a[i-1]) 30 { 31 same = true; 32 break; 33 } 34 else 35 count += a[i] - a[i-1] - 1; 36 37 if (same || kingCount < count) 38 cout << "Oh My God!" << endl; 39 else 40 cout << "So Lucky!" << endl;
http://www.cnblogs.com/tractorman/p/4105086.html
Read full article from [九度][何海涛] 扑克牌顺子 - chkkch - 博客园