P1321 单词覆盖还原
哈喽,好久不见!已经快三年没更新过代码了,这三年发生了很多事情,希望在之后的工作之余可以多更新一些,大家互相交流学习。
1、题目
题目描述
我有一个长度为 lll 的字符串,最开始时,这个字符串由 lll 个句号(.
)组成。
我在这个字符串中,将多次把 boy
或者 girl
两单词,依次贴到这个字符串中。
后贴上单词,会覆盖之前贴上的单词,或者覆盖句号。最终,每个单词至少有一个字符没有被覆盖。
请问,一共贴有几个 boy
几个 girl
?
输入格式
一行被反复贴有 boy
和 girl
两单词的字符串。
输出格式
两行,两个整数。第一行为 boy
的个数,第二行为 girl
的个数。
输入输出样例 #1
输入 #1
......boyogirlyy......girl.......
输出 #1
4
2
说明/提示
数据保证,3≤l≤2553\le l\le2553≤l≤255,字符串仅仅包含如下字符:.bgilory\texttt{.bgilory}.bgilory。
2、求解过程
代码:
#include <stdio.h>
int main(){
int l;//表示输入了多少个字符
char words[255];
int boy=0;
int girl=0;
scanf("%255s",words);//输入字符串
for(int j=0;words[j]!='\0';j++){//统计字符个数
l++;
}
// printf("%d\n",l);
for(int i=0;i<l;i++){
if(words[i]=='b'&& words[i+1]!='o'){
boy++;
}
else if(words[i]=='o'&& words[i+1]!='y'){
boy++;
}
else if(words[i]=='y'){
boy++;
}else if(words[i]=='g'&& words[i+1]!='i'){
girl++;
}else if(words[i]=='i'&& words[i+1]!='r'){
girl++;
}else if(words[i]=='r'&& words[i+1]!='l'){
girl++;
} else if(words[i]=='l'){
girl++;
}
}
printf("%d\n%d",boy,girl);
return 0;
}
结果: