洛谷C++ 1321
题目描述
一个长度为 l(3\le l\le255)l(3≤l≤255) 的字符串中被反复贴有 boy 和 girl 两单词,后贴上的可能覆盖已贴上的单词(没有被覆盖的用句点表示),最终每个单词至少有一个字符没有被覆盖。问贴有几个 boy 几个 girl?
输入格式
一行被被反复贴有boy和girl两单词的字符串。
输出格式
两行,两个整数。第一行为boy的个数,第二行为girl的个数。
输入输出样例
......boyogirlyy......girl.......
4 2
答案:
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int cnt1=0,cnt2=0;//定义两个整型变量,记录字符串中"boy"和"girl"所出现的次数.
string arr;//定义并输入字符串.
cin>>arr;
int a=arr.length();//获取字符串arr的长度.
for(int i=0;i<a;i++){//对字符串arr中的每1项进行判断.
if(arr[i]=='b' ){//如果arr[i]是"boy"中的1项,记录"boy"出现的次数的变量加1.
cnt1++;
}
else if(arr[i]=='o' && arr[i-1]!='b'){//如果arr[i]是"boy"中的1项,且arr[i]并不与前1项属于同1个单词,记录"boy"出现的次数的变量加1.
cnt1++;
}
else if(arr[i]=='y' && arr[i-1]!='o'){//如果arr[i]是"boy"中的1项,且arr[i]并不与前1项属于同1个单词,记录"boy"出现的次数的变量加1.
cnt1++;
}
if(arr[i]=='g' ){//如果arr[i]是"girl"中的1项,记录"girl"出现的次数的变量加1.
cnt2++;
}
else if(arr[i]=='i' && arr[i-1]!='g'){//如果arr[i]是"girl"中的1项,且arr[i]并不与前1项属于同1个单词,记录"girl"出现的次数的变量加1.
cnt2++;
}
else if(arr[i]=='r' && arr[i-1]!='i'){//如果arr[i]是"girl"中的1项,且arr[i]并不与前1项属于同1个单词,记录"girl"出现的次数的变量加1.
cnt2++;
}
else if(arr[i]=='l' && arr[i-1]!='r'){//如果arr[i]是"girl"中的1项,且arr[i]并不与前1项属于同1个单词,记录"girl"出现的次数的变量加1.
cnt2++;
}
}
cout<<cnt1<<endl<<cnt2;//输出"boy"与"girl"所出现的次数,并用换行隔开.
return 0;
}

浙公网安备 33010602011771号