[语言月赛 202408] 因友情而终结
[语言月赛 202408] 因友情而终结
题目背景
友情是什么?
风不知道。
但当友情让爱情出现猜忌
风选择因爱情而终结友情
题目描述
字符串 S S S 是一个仅由英文小写字母构成的串。现在,你可以对字符串 S S S 执行任意次如下操作:
- 选择
S
S
S 长度为
4
4
4 的一个子串,将其替换为
love
。
请问,至少操作多少次,字符串
S
S
S 不再有子串 friend
。
定义:子串指的是一个字符串中连续的一段字符序列。例如,字符串
aabbcc
有子串aab
、aabb
,但abc
不是字符串aabbcc
的子串,因为其不连续。
输入格式
输入一行一个字符串 S S S。
输出格式
输出一行一个整数,表示最少操作次数。
样例 #1
样例输入 #1
friend
样例输出 #1
1
样例 #2
样例输入 #2
friendzdxfriend
样例输出 #2
2
提示
对于
20
%
20\%
20% 的测试数据,
1
≤
∣
S
∣
≤
6
1 \le |S| \le 6
1≤∣S∣≤6;
对于
100
%
100\%
100% 的测试数据,
1
≤
∣
S
∣
≤
1
0
6
1 \le |S| \le 10^6
1≤∣S∣≤106,
S
S
S 仅由小写英文字母组成。
#include <iostream>
#include <string>
using namespace std;
string s;
int num;
int main() {
cin>>s;
for(int i=0; i<s.size(); i++) {
if(s[i+0]=='f'&&s[i+1]=='r'&&s[i+2]=='i'&&s[i+3]=='e'&&s[i+4]=='n'&&s[i+5]=='d') {
num++;
i+=5;
s[i+0]='l';
s[i+1]='o';
s[i+2]='v';
s[i+3]='e';
}
}
cout<<num;
return 0;
}