[NOIP 2018 普及组] 标题统计 · 教师题解

[NOIP 2018 普及组] 标题统计

知识点

字符串、字符处理、计数

解题思路

逐个读取字符,统计不属于空格、换行或回车的字符数量。

正确性说明

在题目规定的字符集合中,需要排除的只有空格和换行;其余英文字母与数字各贡献1,因此逐字符求和正好得到有效长度。

易错点

不能用cin>>s只读到第一个空格;不要把尾部换行计入答案;字母大小写不影响计数。

复杂度

时间O(|s|),空间O(1)。

参考代码(GNU C++17)

#include<bits/stdc++.h>
using namespace std;
int main(){
    char c;int ans=0;while(cin.get(c))if(c!=' '&&c!='\n'&&c!='\r')++ans;
    cout<<ans<<'\n';
}
返回题目