You are given a text consisting of n lines. Each line contains some space-separated words, consisting of lowercase English letters.
We define a syllable as a string that contains exactly one vowel and any arbitrary number (possibly none) of consonants. In English alphabet following letters are considered to be vowels: 'a', 'e', 'i', 'o', 'u' and 'y'.
Each word of the text that contains at least one vowel can be divided into syllables. Each character should be a part of exactly one syllable. For example, the word "mamma" can be divided into syllables as "ma" and "mma", "mam" and "ma", and "mamm" and "a". Words that consist of only consonants should be ignored.
The verse patterns for the given text is a sequence of n integers p1, p2, ..., pn. Text matches the given verse pattern if for each i from 1to n one can divide words of the i-th line in syllables in such a way that the total number of syllables is equal to pi.
You are given the text and the verse pattern. Check, if the given text matches the given verse pattern.
The first line of the input contains a single integer n (1 ≤ n ≤ 100) — the number of lines in the text.
The second line contains integers p1, ..., pn (0 ≤ pi ≤ 100) — the verse pattern.
Next n lines contain the text itself. Text consists of lowercase English letters and spaces. It's guaranteed that all lines are non-empty, each line starts and ends with a letter and words are separated by exactly one space. The length of each line doesn't exceed 100characters.
If the given text matches the given verse pattern, then print "YES" (without quotes) in the only line of the output. Otherwise, print "NO" (without quotes).
3 2 2 3 intel code ch allenge
YES
4 1 2 3 1 a bcdefghi jklmnopqrstu vwxyz
NO
4 13 11 15 15 to be or not to be that is the question whether tis nobler in the mind to suffer the slings and arrows of outrageous fortune or to take arms against a sea of troubles
YES
In the first sample, one can split words into syllables in the following way:
in-tel co-de ch al-len-ge
Since the word "ch" in the third line doesn't contain vowels, we can ignore it. As the result we get 2 syllabels in first two lines and 3syllables in the third one.
题意:
给定一组数字和字符串,数组表示 a e i o u y 的个数。。。(其实,都不知道比较的是什么)
当统计的个数不同于给定的数字时,就输出 NO
思路:
水题吧。。。。
ac code:
#include<stdio.h>
#include<cstring>
#include<algorithm>
#define AC main()
using namespace std;
const int MYDD = 113;
char p[MYDD][MYDD];
int a[MYDD];
bool Check(char c) {
if(c == 'a'||c == 'e'||c == 'i'||c == 'o'||c == 'u'||c == 'y')
return 1;
return 0;
}
int AC {
int n;
scanf("%d", &n);
for(int j = 1; j <= n; j++)
scanf("%d", &a[j]);
int v = 0, flag = 1;
while(v <= n) {
int c, tmp = 0;
while((c = getchar()) != '\n') {
if(Check(c)) tmp++;
}
if(tmp != a[v]) {
flag = 0;
}
v++;
}
if(flag) puts("YES");
else puts("NO");
return 0;
}
本文解析了CodeForces平台上的B.VersePattern题目,介绍了如何判断给定文本是否符合特定韵律模式的方法,包括词汇分割成音节的规则及验证流程。
598

被折叠的 条评论
为什么被折叠?



