CF938A Word Correction 题解

Content

有一个长度为 \(n\) 的,只包含小写字母的字符串,只要有两个元音字母相邻,就得删除后一个元音字母(\(\texttt{a,e,i,o,u,y}\) 中的一个),请求出最后得到的字符串。

数据范围:\(1\leqslant n\leqslant 100\)。

Solution

我们遍历字符串,判断当前扫到的字符是否是元音字母,这样好在遍历到下一个字母时判断是否需要删除,不需要的话直接输出当前字符就好。

Code

string s;
int vowel = 0, n;

int main() {
	getint(n);
	cin >> s;
	_for(i, 0, n - 1) {
		if((s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u' || s[i] == 'y') && vowel) continue;
		printf("%c", s[i]);
		vowel = (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u' || s[i] == 'y');
	}
	return 0;
}
上一篇:Unity 用户手册用户指南二维纹理 (Texture 2D)


下一篇:TALC: Transcription Aware Long Read Correction