zoukankan      html  css  js  c++  java
  • 1175.打牌

    题目描述:

    牌只有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
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    int main(){
        char a[100],b[100];
        while(gets(a)&&gets(b)){
            int len=strlen(b);
            int i,flag=0;
            int len1=strlen(a);
            switch(len){
                case 1:
                    for(i=0;i<len1;i++){
                        if(a[i]>b[0]) flag=1;
                    } 
                    break;
                case 2:
                    for(i=0;i<len1-1;i++){
                        if(a[i]==a[i+1])
                        {
                            if(a[i]>b[0]) flag=1;
                        }
                    } break;
                case 3:
                    for(i=0;i<len1-2;i++){
                        if(a[i]==a[i+1]&&a[i]==a[i+2])
                        {
                            if(a[i]>b[0]) flag=1;
                        }
                    } break;        
                case 4:
                    for(i=0;i<len1-3;i++){
                        if(a[i]==a[i+1]&&a[i]==a[i+2]&&a[i]==a[i+3])
                        {
                            if(a[i]>b[0]) flag=1;
                        }
                    } break;
                case 5:
                    int count=0,j;
                    for(i=0;i<len1-1;i++)
                    {
                        if(a[i]==a[i+1])
                        {
                            for(j=i;j<len1-1;j++)
                            {a[j]=a[j+1];}
                            len1--;
                        }
                    }
                    for(i=0;i<len1-4;i++)
                    {
                        if(a[i]==a[i+1]-1 && a[i+1]==a[i+2]-1 && a[i+2]==a[i+3]-1 && a[i+3]==a[i+4]-1)
                        {
                            if(a[i]>b[0]) flag=1;
                        }
                    }
            }
            if(flag) cout<<"YES"<<endl;
            else cout<<"NO"<<endl;
        }
        return 0;
    }
  • 相关阅读:
    【题解】P2262 [HNOI2004]FTP服务器
    关于大模拟
    CodeForces 666E Forensic Examination
    Bzoj3233 [Ahoi2013]找硬币
    Bzoj4350 括号序列再战猪猪侠
    UOJ#31 【UR #2】猪猪侠再战括号序列
    UOJ#21 【UR #1】缩进优化
    51nod1667 概率好题
    [CodeChef
    51nod1245 Binomial Coefficients Revenge
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9735176.html
Copyright © 2011-2022 走看看