zoukankan      html  css  js  c++  java
  • 九度OJ 1175:打牌 (模式匹配)

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:8156

    解决:1560

    题目描述:

    牌只有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
    来源:
    2010年北京邮电大学网院研究生机试真题

    思路:

    不算难的模式匹配。


    代码:

    #include <stdio.h>
    #include <string.h>
     
    int main(void)
    {
        int i;
        char a[101], b[6];
        int c[10];
        int res;
     
        while (scanf("%s", a) != EOF)
        {
            for (i=0; i<10; i++)
                c[i] = 0;
            for(i=0; a[i]; i++)
                c[a[i]-48] ++;
            scanf("%s", b);
            int type = strlen(b);
            res = 0;
            if (type <= 4)
            {
                for (i=b[0]-48+1; i<10; i++)
                {
                    if (c[i] >= type)
                    {
                        res = 1;
                        break;
                    }
                }
            }
            else
            {
                if (b[0] != '5')
                {
                    for (i=b[0]-48+1; i<=5; i++)
                    {
                        if (c[i]>0 && c[i+1]>0 && c[i+2]>0 && c[i+3]>0 && c[i+4]>0)
                        {
                            res = 1;
                            break;
                        }
                    }
                }
            }
            if (res == 1)
                printf("YES
    ");
            else
                printf("NO
    ");
        }
     
        return 0;
    }
    /**************************************************************
        Problem: 1175
        User: liangrx06
        Language: C
        Result: Accepted
        Time:10 ms
        Memory:912 kb
    ****************************************************************/


    编程算法爱好者。
  • 相关阅读:
    hibernate关联关系
    数据结构之二叉树java实现
    队列java实现
    栈java实现
    原生JS结合cookie实现商品评分组件
    JAVA学习第一阶段(2)
    JAVA学习第一阶段(1)
    如何修改hosts并保存
    运行Apache时出现the requested operation has failed
    实现一元多项式
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5083852.html
Copyright © 2011-2022 走看看