点击打开链接
/* 时间:2014.2.10 目的;题目1175:打牌http://ac.jobdu.com/problem.php pid=1175 */ #include#include 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') (str[0] - '0')){//注意长度是<=,不是=, flag = 1; break; } flag printf("YES\n"):printf("NO\n");//输出 } return 0; } /* ----------------- 12233445566677 思路:1. 我是将长度为5与(1-4)长度的情况分开讨论 34567 2.模拟 NO ----------------- */