湘潭邀请赛——Welcome to XTCPC

Welcome to XTCPC

Accepted : 159 Submit : 304
Time Limit : 1000 MS Memory Limit : 65536 KB 

Problem Description

Welcome to XTCPC! XTCPC start today, you are going to choose a slogan to celebrate it, many people give you some candidate string about the slogan, but the slogan itself must have something relavant to XTCPC, a string is considered relevant to XTCPC if it become XTCPC after deleting some characters in it. For example, XTCPC, XTCCPCC, OIUXKKJATSADCASPHHC is relevant, XX,FF,GG,CPCXT,XTCP is not. Now you have to write a program to judge whether a string is relevant to XTCPC.

Input

First line an integer t(t≤100), the number of testcases. For each case, there is a string(length≤100, all are uppercase characters).

Output

For each case, output case number first, then "Yes" if the string is relevant, "No" if the string is not relevant. Quote for clarify.

Sample Input
3
XTCPC
CCC
XXXXTTTTCCCCPPPCCC


Sample Output
Case 1: Yes
Case 2: No
Case 3: Yes

 
	在一个字符串中,按顺序遍历是否能出现XTCPC,若是能出现,则打印Yes,利用栈存储。
 
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

using namespace std;
char sz[109];
char zhan[10];

int main()
{
    int i,j,k,top,low;
    int n,m;
    char *p;
    scanf("%d%*c",&n);
    for(m = 1;m <= n;m++)
    {
        scanf("%s",sz);
        p = sz;
        top = -1;
        while(*p != '\0')
        {
            if(*p == 'X')
            {
                if(top == -1)
                {
                    zhan[++top] = *p;
                }
            }
            else if(*p == 'T')
            {
                if(zhan[top] == 'X' && top == 0)
                {
                    zhan[++top] = *p;
                }
            }
            else if(*p == 'C')
            {
                if(zhan[top] == 'T' && top == 1)
                {
                    zhan[++top] = *p;
                }
                else if(zhan[top] == 'P' && top == 3)
                    zhan[++top] = *p;
            }
            else if(*p == 'P' && top == 2)
            {
                if(zhan[top] == 'C')
                {
                    zhan[++top] = *p;
                }
            }
            p++;
        }
        if(top == 4)
            printf("Case %d: Yes\n",m);
        else
            printf("Case %d: No\n",m);
    }
    return 0;
}


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值