[语言月赛 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;
}