打牌
来源:互联网 发布:中山大学旅游学院 知乎 编辑:程序博客网 时间:2024/04/27 16:56
题目要求:
题目描述:
牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌。
规则:出牌牌型有5种
[1]一张 如4 则5...9可压过
[2]两张 如44 则55,66,77,...,99可压过
[3]三张 如444 规则如[2]
[4]四张 如4444 规则如[2]
[5]五张 牌型只有12345 23456 34567 45678 56789五个,后面的比前面的均大。
输入:
输入有多组数据。
每组输入两个字符串(字符串大小不超过100)a,b。a字符串代表手中牌,b字符串代表处的牌。
输出:
压过输出YES 否则NO。
样例输入:
12233445566677
33
样例输出:
YES
代码:
int check(char* a,char* b);
void main()
{
char a[100];//已经排好序的牌a
char b[100];//对方出的牌
while(scanf("%s",a)!=EOF){
scanf("%s",b);
if(check(a,b)==1) printf("YES\n");
else printf("NO\n");
}
}
int check(char* a,char* b)
{
int i,j,count;
char temp;
if(strlen(b)==5){
for(i=0;i<strlen(a);i++){
if(a[i]>b[0]){
j=i+1;
temp=a[i]+1;
count=1;
while(a[j]!='\0'){
if(a[j]==temp){
temp=a[j]+1;
count++;
if(count==5) return 1; //找到
}
if(a[j]>temp) return 0; //没有
j++;
}
}
}//endfor
}//endif
else{
count=strlen(b);
for(i=0;i<strlen(a);i++){
if(a[i]>b[0]){
if(a[i+count]==a[i]) return 1; //有序的a,只看移动固定长度是否还有那个值
}
}//endif
}//endelse
return 0;
}
- 打牌
- 打牌
- 打牌
- 打牌
- 出去打牌
- 打牌心得
- 1049: 打牌
- 问题 : 打牌
- 打牌导论:>
- 新年趣事之打牌
- 题目1175:打牌
- 新年趣事之打牌
- 题目1175:打牌
- 谁不爱打牌
- 谁不爱打牌
- 谁不爱打牌
- 题目1175:打牌
- 题目1175:打牌
- jsp_2
- 欢迎使用CSDN-markdown编辑器
- Windows单机配置Kafka环境
- 循环Excel指定行
- 实战丨Python黑魔法之描述符
- 打牌
- NYOJ 37 回文字符串 (lcs最长公共子序列)
- 输入一段字符,判断字符串中字母的个数,数字的个数和其他字符个数
- 网易内推题目第二波
- 微服务架构和SOA区别
- String类的常用方法总结
- Android学习(八) Notification知识整合
- HTML5 表单验证
- Windows单机配置Zookeeper环境