元音与非元音字符串

QAQ的字符串

Time Limit: 1000MS  Memory Limit: 65536KB
Problem Description

一天,QAQ 得到了一种只包含大小写字母,且满足元音字母 ('A a', 'E e', 'I i', 'O o', 'U u') 和辅音字母(非元音字母)交替出现的字符串。被这种优美的性质所迷倒的 QAQ 决定将这类字符串命名为「厉害了我的金桔串」

现在,QAQ 得到了一堆字符串,他想知道有哪些字符串是「厉害了我的金桔串」

Input

输入数据有多组(数据组数不超过 100),到 EOF 结束。

每组输入为一行,包含一个字符串(字符串中只含有大小写英文字母,长度大于 1 且不超过 15)。

Output

对于每组输入,如果这个字符串是「厉害了我的金桔串」,则在一行中输出 "Yes",否则输出 "No"(不包括引号)。

Example Input
QAQ
United
rehabilitative
abc
Example Output
Yes
Yes
Yes
No
Hint
Author
「2016级ACM集训队第一次选拔赛」bLue

着重理解标记变量

#include <stdio.h>




int Judge(char ch)   /// 判断是否为元音字母
{
    if(ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u')
        return 1;
    else return 0;
}
int main()
{
    char s[1001];
    while(~ scanf("%s", s))
    {
        int i;
        for(i=0; s[i]; ++i)   /// 全部转小写
        {
            if(s[i]>='A' && s[i]<='Z')
                s[i] += 32;
        }
        int ok = 1;  /// 默认为是金桔串
        int last, type;  /// last 为上一个字符的字母类型,type 为当前的类型
        if(Judge(s[0])) last = 0;   /// 预处理第一个字符,为元音
        else last = 1;   ///辅音
        for( i=1; s[i]; ++i)
        {
            if(Judge(s[i])) type = 0;   ///判断第二个,前后关系
            else type = 1;
            if(last != type) last = type;   /// 如果两次不同,则更新 last , 第一组过关
            else     /// 否则直接跳出
            {
                ok=0;   ///只有元音和辅音两种
                break;
            }
        }
        if(ok) printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}
///aabb qaq aqa qaqq  a q
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值