题目链接:P1321 单词覆盖还原 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目描述
一个长度为 l 的字符串中被反复贴有 boy 和 girl 两单词,后贴上的可能覆盖已贴上的单词(没有被覆盖的用句点表示),最终每个单词至少有一个字符没有被覆盖。问贴有几个 boy 几个 girl ?
输入格式
一行被被反复贴有 boy 和 girl 两单词的字符串。
输出格式
两行,两个整数。第一行为 boy 的个数,第二行为 girl 的个数。
样例 #1
样例输入 #1
......boyogirlyy......girl.......
样例输出 #1
4
2
提示
数据保证,3 <= l <= 255,字符串仅仅包含如下字符:.bgilory。
AC code:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<vector>
using namespace std;
int main()
{
string s;
cin>>s;
int res1 = 0 , res2 = 0;
for(int i = 0 ; i < s.size() ; i ++)
{
if(s[i] == 'b')
res1 ++;
else if(s[i] == 'o' && s[i - 1] != 'b')
res1 ++;
else if(s[i] == 'y' && s[i - 1] != 'o')
res1 ++;
else if(s[i] == 'g')
res2 ++;
else if(s[i] == 'i' && s[i - 1] != 'g')
res2 ++;
else if(s[i] == 'r' && s[i - 1] != 'i')
res2 ++;
else if(s[i] == 'l' && s[i - 1] != 'r')
res2 ++;
}
cout<<res1<<"\n"<<res2<<endl;
return 0;
}