/*
时间:2014.2.10
目的;题目1175:打牌http://ac.jobdu.com/problem.php?pid=1175
*/
#include <stdio.h>
#include <string.h>
int main()
{
char str[101];
int a[10], i, len, t, f, flag;
while(~scanf("%s", str))
{
flag = f = t = 0;
for(i = 0;i < 10;i++)//清零
a[i] = 0;
for(i = 0;str[i];i++)//统计1,2,3,4,5,6,7,8,9出现的数目
a[(str[i]-'0')]++;
for(i = 1;i < 6;i++)//求出连续最大的五个数的首数字,如34567,则t=3
if(a[i]&&a[i+1]&&a[i+2]&&a[i+3]&&a[i+4])
t = i;
scanf("%s", str);
len = strlen(str);
(len == 5)&&(f=1)&&((str[0]-'0')<t)&&(flag=1);//f为判断是否len==5,作为for的条件,flag作为输出的条件
for(i = 1;f==0 && i < 10;i++)//这是判断str长度<=4的是否出牌判断
if(len <= a[i] && i > (str[0] - '0')){//注意长度是<=,不是=,
flag = 1; break;
}
flag?printf("YES\n"):printf("NO\n");//输出
}
return 0;
}
/*
-----------------
12233445566677 思路:1. 我是将长度为5与(1-4)长度的情况分开讨论
34567 2.模拟
NO
-----------------
*/
题目1175:打牌
最新推荐文章于 2020-03-07 19:04:05 发布