欢迎使用CSDN-markdown编辑器

来源:互联网 发布:淘宝介入谁先举证 编辑:程序博客网 时间:2024/06/06 01:54

T1 元音字母(vowel)
【问题描述】
给你一个所有字符都是字母的字符串,请输出其中元音字母的个数。(提示:二十六个字母中的
五个元音字母是a,e,i,o,u; 所有字符有大小写区别。)
【输入格式】
仅一行,包括一个字符串。
【输出格式】
输出一个整数,如题所述。
【输入样例】
helloworld
【输出样例】
3
【数据规模】
对于100%的数据,字符串长度小于等于10^6

NHOI的第一题,很简单,代码量也很少。
超级无敌大水题。
【注意事项】
1、注意数据量,106不会超时,时间复杂度为O(n)。
2、它给出了a e i o u 这五个元音字母。但由于它给的是小写的,所以在写题的时候有不少人都只写了小写。当时我也犹豫了很久,最后决定加上大写。事实证明,是要加上大写的。不然只有25分。
3、字符串下标从0开始,循环终止条件为i<字符串的长度。不然只能得到45分。
4、字符串长度用一个常量保存下来,尽量不要写for(int i=0;i

#include<cstdio> #include<iostream>using namespace std;string a;bool check(int n)//判断是否元音字母{    if(a[n]=='a'||a[n]=='A') return true;//如果是元音返回true     if(a[n]=='e'||a[n]=='E') return true;    if(a[n]=='i'||a[n]=='I') return true;    if(a[n]=='o'||a[n]=='O') return true;    if(a[n]=='u'||a[n]=='U') return true;    return false;//否则返回false}int main(){    freopen("vowel.in","r",stdin);    freopen("vowel.out","w",stdout);    cin>>a;//读入一个字符串    const int s=a.size();//用一个int sum=0;    for(int i=0;i<s;i++)        if(check(i)) sum++;//函数判断是否原音,若为真,统计加+1cout<<sum;//输出    return 0;}
原创粉丝点击