专栏文章

题解:P1321 单词覆盖还原

P1321题解参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@mioxrbzg
此快照首次捕获于
2025/12/03 02:53
3 个月前
此快照最后确认于
2025/12/03 02:53
3 个月前
查看原文

题意

我们需要统计一个字符串中 boygirl 的出现次数:
  • 字符串初始由 . 组成,后来被 boygirl 覆盖。
  • 后贴的单词会覆盖之前的字符(可能是部分覆盖)。
  • 每个单词至少有一个字符未被覆盖,所以我们可以通过遍历字符串来识别 boygirl 的片段。

思路

由于有覆盖的情况,所以 boygirl 并不完整:
  • 当相邻三个字母中第一个是 b 第二个是 o 第三个是 y,那么说明这里有 boy
  • 当相邻四个字母中第一个是 g 第二个是 i 第三个是 r第四个是 l,那么说明这里有 girl
最后统计 boygirl 数量输出即可。

Code

CPP
#include<iostream>
#define int long long
using namespace std;
string s;
int ansboy,ansgirl;
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>s;
	for(int i=0;i<s.size();i++){
		if(s[i]=='b'||s[i+1]=='o'||s[i+2]=='y')ansboy++;
		if(s[i]=='g'||s[i+1]=='i'||s[i+2]=='r'||s[i+3]=='l')ansgirl++;
	}
	cout<<ansboy<<'\n'<<ansgirl;
}

评论

1 条评论,欢迎与作者交流。

正在加载评论...