【剑指Offer面试编程题】题目1355:扑克牌顺子--九度OJ
- 题目描述:
-
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决定去买体育彩票啦。现在,要求你使用这幅牌模拟上面的过程,然后告诉我们LL的运气如何。为了方便起见,你可以认为大小王是0。
- 输入:
-
输入有多组数据。
每组数据包含两行,第一行输入一个正数n(0<=n<=14),表示从扑克牌中抽出的扑克牌数。接下来的一行输入n个数,表示从这幅扑克牌中抽出的牌。如果n=0,则结束输入。
- 输出:
-
对应每组数据,如果抽出的牌是顺子,则输出“So
Lucky!”。否则,输出“Oh My God!”。
样例输入:
5
3 5 1 0 4
5
3 5 4 7 6
5
3 5 7 4 8
0
样例输出:
So Lucky!
So Lucky!
Oh My God!
【解题思路】本题应该还是思路比较清晰的一道题目了,我们首先统计一下大小王的个数,然后对给出的数进行排序,排序后我们统计出数字的空缺数字个数,比如若排序后是1 3,则空缺数字2,空缺的数字个数为1。最后我们比较大小王的个数与空缺数字的个数,若大小王个数少则无法补充空缺,牌不是顺子。否则是顺子。
AC code:
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std; int main()
{
int n;
while(scanf("%d",&n)!=EOF && n>0)
{
vector<int> vecin(n);
int zeronum=0;
for(int i=0;i<n;++i)
{
scanf("%d",&vecin[i]);
if(vecin[i]==0)
++zeronum;
}
sort(vecin.begin(),vecin.end());
int needfill=0;
if(zeronum==n)
{
printf("So Lucky!\n");
continue;
}
int i;
for(i=zeronum+1;i<n;++i)
{
if(vecin[i]==vecin[i-1])
break;
needfill+=(vecin[i]-vecin[i-1]-1);
}
if(i<n || needfill>zeronum)
printf("Oh My God!\n");
else
printf("So Lucky!\n");
}
return 0;
}
/**************************************************************
Problem: 1355
User: huo_yao
Language: C++
Result: Accepted
Time:0 ms
Memory:1024 kb
****************************************************************/
题目链接:http://ac.jobdu.com/problem.php?pid=1355 九度-剑指Offer习题全套答案下载:http://download.csdn.net/detail/huoyaotl123/8276299
【剑指Offer面试编程题】题目1355:扑克牌顺子--九度OJ的更多相关文章
- 【剑指Offer面试编程题】题目1509:树中两个结点的最低公共祖先--九度OJ
题目描述: 给定一棵树,同时给出树中的两个结点,求它们的最低公共祖先. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入的第一行为一个数n(0<n<1000),代表测试样例的个数 ...
- 【剑指Offer面试编程题】题目1508:把字符串转换成整数--九度OJ
题目描述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入为一个合法或者非法的字符串,代表一个整数n(1<= n&l ...
- 【剑指Offer面试编程题】题目1507:不用加减乘除做加法--九度OJ
题目描述: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入为两个整数m和n(1<=m,n<=10 ...
- 【剑指Offer面试编程题】题目1506:求1+2+3+...+n--九度OJ
题目描述: 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 输入: 输入可能包含多个测试样例. 对于每个 ...
- 【剑指Offer面试编程题】题目1356:孩子们的游戏(圆圈中最后剩下的数)--九度OJ
题目描述: 每年六一儿童节,JOBDU都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为JOBDU的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈. ...
- 【剑指Offer面试编程题】题目1360:乐透之猜数游戏--九度OJ
题目描述: 六一儿童节到了,YZ买了很多丰厚的礼品,准备奖励给JOBDU里辛劳的员工.为了增添一点趣味性,他还准备了一些不同类型的骰子,打算以掷骰子猜数字的方式发放奖品.例如,有的骰子有6个点数(点数 ...
- 【剑指Offer面试编程题】题目1362:左旋转字符串--九度OJ
题目描述: 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S=&qu ...
- 【剑指Offer面试编程题】题目1361:翻转单词顺序--九度OJ
题目描述: JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,&quo ...
- 【剑指Offer面试编程题】题目1354:和为S的连续正数序列--九度OJ
题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久, ...
随机推荐
- MySQL删除语句比较,清空表数据,重置自增长索引
drop truncate delete 程度从强到弱 1.drop table tbdrop将表格直接删除,没有办法找回 2.truncate (table) tbtruncate 删除表中的所有数 ...
- mvc 部分页
在一些复杂的项目中,我们经常会遇到一个页面存在很多模块,存在页面交互或者加载数据过多等问题,这种时候,我们很可能会考虑到通过使用部分页来解决这个问题(ps:当然还有很多的解决方案,在这里只是简单介绍这 ...
- Linux03——磁盘分区和挂载
Windows下的磁盘分区: 常用的两种磁盘分区类型 mbr: 操作系统安装在主分区 只支持4个主分区 拓展分区占一个主分区 gpt(win7 64位之后) 无限主分区 支持超大硬盘3T以上 查看所有 ...
- Integer数值小于127时使用==比较的坑
Java在处理Integer时使用了一个缓存,其中缓存了-128到127之间的数字对应的Integer对象,所以在绝大多数情况下,当我们把2个小于128的Integer对象用==比较时,Java往往是 ...
- AC自动机讲解超详细
begin:2019/5/2 感谢大家支持! AC自动机详细讲解 AC自动机真是个好东西!之前学KMP被Next指针搞晕了,所以咕了许久都不敢开AC自动机,近期学完之后,发现AC自动机并不是很难,特别 ...
- Apache Thrift Learning Notes
简介 Apache Thrift软件框架(用于可扩展的跨语言服务开发)将软件堆栈与代码生成引擎结合在一起,以构建可在C ++,Java,Python,PHP,Ruby,Erlang,Perl,Hask ...
- java中对象的初始化问题
最近又把java编程思想看了看.又有些收获.此书确实不错 java中的初始化相信很多人都知道.但是具体的初始化步骤,初始化几次确不一定.上代码 public class A{ public stati ...
- 【MySQL】常用增删改查
目录 1. 文件夹(库) 2. 文件(表) 3. 文件内容(数据) "@ ___ 1. 文件夹(库) # 增 create database db charset utf8; # 查 sho ...
- 排序算法之冒泡排序的python实现
冒泡排序算法的工作原理如下: 1. 比较相邻的元素.如果第一个比第二个大(升序),就交换他们两个. 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.这步做完后,最后的元素会是最大 ...
- put、patch与post区别
idempotent 幂等的 如果一个方法重复执行多次,产生的效果是一样的,那就是idempotent的: idempotent的意思是如果相同的操作再執行第二遍第三遍,結果還是一樣. POST方法 ...