开始用getline(cin, s)
读字符串WA了4、5两个点。
第4个数据点的数据
输入:(两个空行)
boboboboboboboboboboy.girgirlgirgigigigigigigirl.boboboboboboboboboboy.girgirlgirgigigigigigigirl.boboboboboboboboboboy.girgirlgirgigigigigigigirl.
输出:(三个空行)
30
30
cin
并不会读入空行,实际输出没有那么多空行。与数据点的输出不符。
而getline
会读入换行符,作为长度为0的字符串进行处理,不特判则会输出两个0而WA,特判输出回车、不输出都是WA。
附代码:
#include <bits/stdc++.h>
using namespace std;
#define Fastio ios::sync_with_stdio(0), cin.tie(0)
int main() {
Fastio;
string s;
while(cin >> s) {
// while(getline(cin, s)) {
int len = s.length(), boyCnt = 0, girlCnt = 0;
// if(len == 0) continue;
// if(len == 0) {cout << "\n\n"; continue;}
for(int i = 0; i < len - 2; ++i) {
if(s[i] == 'b' || s[i + 1] == 'o' || s[i + 2] == 'y') ++boyCnt;
if(i < len - 3 && (s[i] == 'g' || s[i + 1] == 'i' || s[i + 2] == 'r' || s[i + 3] == 'l')) ++girlCnt;
}
cout << boyCnt << "\n" << girlCnt << "\n";
}
return 0;
}