题解 P1321 【单词覆盖还原】
这道题使我们班考试时的一道题
当时我想得很复杂,导致我只对了1个测试点
看了正解,我想哭,发现代码超短,而且思路很简单
现在,让我见一下思路
首先,我们要有一个字符串,一个计算boy与一个计算girl的变量
用询问字符串来统计个数
如果是BOY,那要么是那一位是“b”,要么下一位是“o”
要么下一位是“y”;
同理,girl也是如此
就可以写成以下如此
cin>>a;
n=a.length();
for(int i=0;i<n-2;i++)
boy+=(a[i]=='b'||a[i+1]=='o'||a[i+2]=='y');
for(int i=0;i<n-3;i++)
girl+=(a[i]=='g'||a[i+1]=='i'||a[i+2]=='r'||a[i+3]=='l');
最后送上AC代码
//P1321
#include<iostream>
#include<algorithm>
#include<iomanip>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<map>
#include<queue>
using namespace std;
int boy,girl,n;
string a;
int main()
{
cin>>a;
n=a.length();
for(int i=0;i<n-2;i++)
boy+=(a[i]=='b'||a[i+1]=='o'||a[i+2]=='y');
for(int i=0;i<n-3;i++)
girl+=(a[i]=='g'||a[i+1]=='i'||a[i+2]=='r'||a[i+3]=='l');
cout<<boy<<endl<<girl;
return 0;
}