CF208A Dubstep 题解

Content

有一个字符串被变换了。其中在这个字符串的前面加了 \(\geqslant 0\)WUB,每个单词(由空格间隔)之间加了 \(\geqslant 1\)WUB,在这个字符串的后面加了个 \(\geqslant 0\)WUB。现在给出变换之后的字符串(长度为 \(n\)),求原来的字符串。

数据范围:\(n\leqslant 200\)

Solution

我们直接遍历这个字符串,一碰到 WUB 就不输出,否则输出当前字符一直到一个 WUB 前面的一个字符(注意,这种情况如果不是在当前字符串中第一次出现的话要加个空格)。

Code

string s;
int len, cur, word;

int main() {
	cin >> s;
	len = s.size(), cur = 0;
	while(cur < len) {
		if(s[cur] == 'W' && s[cur + 1] == 'U' && s[cur + 2] == 'B')	cur += 3;
		else {
			if(word)	printf(" ");
			word++;
			while((s[cur] != 'W' || s[cur + 1] != 'U' || s[cur + 2] != 'B') && cur < len) {
				printf("%c", s[cur]);
				cur++;
			}
		}
	}
	return 0;
}
posted @ 2021-12-17 14:21  Eason_AC  阅读(33)  评论(0)    收藏  举报