题目:P1321 单词覆盖还原 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<bits/stdc++.h>
using namespace std;
const int N = 10005;
//字符串的下标从零开始
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(NULL);
string s;
cin>>s;
int cnt=0,ans=0;
for(int i=0;i<=s.length();i++){
if(s[i]=='b'||s[i+1]=='o'||s[i+2]=='y')
cnt++;
if(s[i]=='g'||s[i+1]=='i'||s[i+2]=='r'||s[i+3]=='l')
ans++;
}
cout<<cnt<<endl<<ans;
return 0;
}
从这道题学到的:
- 字符串的循环下标是从0开始的,如果从1开始遍历容易报错
- 好好体会这道题的循环,逐个推一下(可以应用于字符串中特定单词的计数)