博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
每天一道算法题(22)——扑克牌的顺子
阅读量:5806 次
发布时间:2019-06-18

本文共 825 字,大约阅读时间需要 2 分钟。

题目:

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

思路:

      设定王为0。统计非王的牌之间的空格数,若小于王的总数(对应填补),则为顺子。有任意一张牌大于2,为非顺子。

代码:

    

bool process(const char* str=NULL){	 if(!str||strlen(str)<5)		 return false;	 int* data=new int[14];	 memset(data,0,14*sizeof(int));//使用之前一定初始化	 while(*str!='\0')            data[*str++ - '0']++;//统计牌数	 int counter=0;//非王的牌的总数	 int blank=0;//牌之间的空格数	 bool flag=false;	 for(int i=1;i<14&&(counter<=5-data[0]);i++){		 if(data[i]==1){//出现一张			 counter++;			 flag=true;		 }		 else if(data[i]>1){//对子以及以上			 delete []data;			 return false;		 }		 else if(flag)//牌之间空格数			 blank++;          }         int king=data[0];         delete []data;         if(blank<=king)//比较空格和king的张数	    return true;         else            return false;}

转载于:https://www.cnblogs.com/engineerLF/p/5393010.html

你可能感兴趣的文章
如何在python中import
查看>>
[Qt][翻译]Qt Style Sheets内容学习-1
查看>>
FusionCharts中文教程:自定义图表——锚点
查看>>
zhilizhili-ui 2016始动 移动端select美化
查看>>
常用浏览器私有属性小记
查看>>
CSS3实现气泡效果
查看>>
大数据平台CDH集群在线安装
查看>>
[Leetcode] Sliding Window Maximum 滑动窗口最大值
查看>>
滚蛋吧!constant 君
查看>>
swift 中级extension
查看>>
简单几步在 Windows 10 上尝鲜 Chrome 的黑暗模式
查看>>
einx 1.0 发布,golang 游戏服务器框架
查看>>
Adaptive Execution如何让Spark SQL更高效更好用?
查看>>
全栈必备——Git
查看>>
git 操作
查看>>
深入理解 JavaScript中的变量、值、传参
查看>>
AECC2019免费下载After Effects CC 2019中文完整破解版免费下载与安装教程 ...
查看>>
2018再见|2019你好
查看>>
混合云管理-企业如何选择混合云管理平台
查看>>
基于Spark的机器学习实践 (十) - 降维
查看>>