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;
}