出牌,用程序判断手中的牌是否能够压过对方出牌



//规则:出牌牌型有5种  
//牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌。
//[1]一张 如4 则5...9可压过
//[2]两张 如44 则55,66,77,...,99可压过
//[3]三张 如444 规则如[2]
//[4]四张 如4444 规则如[2]
//[5]五张 牌型只有12345 23456 34567 45678 56789五个,后面的比前面的均大。
//输入: 输入有多组数据。
//每组输入两个字符串(字符输出: 压过输出YES 否则NO。
//串大小不超过100)a,b。a字符串代表手中牌,b字符串代表处的牌。
//样例输入: 12233445566677
//33
//123344556667799
//888
//样例输出: YES
//NO
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int cmp(char a,char b)
{
 return a<b;
}
void main()
{
 char s1[100];
 char s2[100];
 gets(s1);
 gets(s2);
 int len1=strlen(s1);
 int len=strlen(s2);
 sort(s1,s1+len1,cmp);
 
 int i=0;
 char *a="YES";
 char *b="NO";
 char *c;
 if(len==1)
 {
  while(s1[i]!='\0')
  {
   if(s1[i]>s2[0])
   {
    c=a;
    break;
   }
   else
    i++;
  }
  if(i==len)
   c=b;
 }

 if(len==2)
 {
  while(s1[i]!='\0')
  {
   if(len-i<2)
   {
    c=b;
    break;
   }
   else
   {
    if(s1[i]>s2[0]&&s1[i+1]==s1[i])
    {
     c=a;
        break;
    }
    else
        i+=2;
   }
  }
  if(i==len)
   c=b;
 }
 if(len==3)
 {
  while(s1[i]!='\0')
  {
   if(len-i<3)
   {
    c=b;
    break;
   }
   else
   {

    if(s1[i]>s2[0]&&s1[i+1]==s1[i]&&s1[i+2]==s1[i])
    {
     c=a;
        break;
    }
       else
        i+=4;
   }
  }
  if(i==len)
   c=b;
 }

 if(len==4)
 {
  while(s1[i]!='\0')
  {
   if(len-i<4)
   {
    c=b;
    break;
   }
   else
   {
    if(s1[i]>s2[0]&&len-i>=4&&s1[i+1]==s1[i]&&s1[i+2]==s1[i]&&s1[i+3]==s1[i])
    {
        c=a;
        break;
       }
    else
        i+=4;
   }
    }
  if(i==len)
   c=b;
 }

 if(len==5)
 {
  while(s1[i]!='\0')
  {
   if(len-i<5)
   {
    c=b;
    break;
   }
   else
   {
    if(s1[i]>s2[0]&&len-i>=5&&s1[i+1]-'1'==s1[i]&&s1[i+2]-'1'==s1[i+1]&&s1[i+3]-'1'==s1[i+2]&&s1[i+4]-'1'==s1[i+3])
    {
        c=a;
        break;
    }
       else
        i++;
   }
  }
  if(i==len)
   c=b;
 }
 cout<<c<<endl;

}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值