zoukankan      html  css  js  c++  java
  • New Year and Counting Cards

    Your friend has n cards.

    You know that each card has a lowercase English letter on one side and a digit on the other.

    Currently, your friend has laid out the cards on a table so only one side of each card is visible.

    You would like to know if the following statement is true for cards that your friend owns: "If a card has a vowel on one side, then it has an even digit on the other side." More specifically, a vowel is one of 'a', 'e', 'i', 'o' or 'u', and even digit is one of '0', '2', '4', '6' or '8'.

    For example, if a card has 'a' on one side, and '6' on the other side, then this statement is true for it. Also, the statement is true, for example, for a card with 'b' and '4', and for a card with 'b' and '3' (since the letter is not a vowel). The statement is false, for example, for card with 'e' and '5'. You are interested if the statement is true for all cards. In particular, if no card has a vowel, the statement is true.

    To determine this, you can flip over some cards to reveal the other side. You would like to know what is the minimum number of cards you need to flip in the worst case in order to verify that the statement is true.

    Input

    The first and only line of input will contain a string s (1 ≤ |s| ≤ 50), denoting the sides of the cards that you can see on the table currently. Each character of s is either a lowercase English letter or a digit.

    Output

    Print a single integer, the minimum number of cards you must turn over to verify your claim.

    Example
    Input
    ee
    Output
    2
    Input
    z
    Output
    0
    Input
    0ay1
    Output
    2
    Note

    In the first sample, we must turn over both cards. Note that even though both cards have the same letter, they could possibly have different numbers on the other side.

    In the second sample, we don't need to turn over any cards. The statement is vacuously true, since you know your friend has no cards with a vowel on them.

    In the third sample, we need to flip the second and fourth cards.

    字母卡牌aeiou另一面必须是偶数,这样才是正确的,问最少要揭开多少张牌来验证是否正确,需要验证的就是带aeiou的牌和带奇数的牌(奇数牌另一面不能是aeiou)

    代码:

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    using namespace std;
    int main()
    {
        char s[51];
        cin>>s;
        int ans = 0;
        for(int i = 0;i < strlen(s);i ++)
        {
            if(isdigit(s[i]) && s[i] % 2)ans ++;
            else if(s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u')ans ++;
        }
        cout<<ans;
    }
  • 相关阅读:
    声明
    Random类——获取随机数
    JDK_API的使用方法
    Ajax?有谁开始学习了吗?
    用xslt循环xml同一节点的不同子节点
    在Repeater控件中嵌套一个Repeater控件
    html+css的一些技巧.收集中...
    记录一下: onbeforeunload()方法, 避免未保存而关闭页面.
    简单的C# Socket编程
    不实用的UriBuilder类
  • 原文地址:https://www.cnblogs.com/8023spz/p/8361853.html
Copyright © 2011-2022 走看看