[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';
}