题解
数字游戏
1 条题解
-
0
解题思路
小 K 发来一个由 0 和 1 组成的 01 字符串,小 P 要数一数里面有多少个
1。可以把 01 字符串想象成一排小灯泡:
1是亮着的灯泡,0是灭着的灯泡。我们要数一数亮着的灯泡有几个。做法非常简单:
- 把整个字符串读进来;
- 从第一个字符开始,一个一个看;
- 看到
1就把计数器加 1,看到0就跳过; - 最后把计数器的值输出。
注意:01 串里只有 0 和 1,没有空格,所以用普通的
cin >> s读入就可以了。参考代码
// 数字游戏:统计长度为8的01字符串中字符1的个数 #include <iostream> using namespace std; int main(){ string s; cin>>s; // 01串不含空格,直接cin读入 int cnt=0; // cnt记录1的个数 int n=s.size(); // n记录字符串长度 for(int i=0;i<n;i++){ if(s[i]=='1') cnt++; // 是字符1就计数 } cout<<cnt<<endl; return 0; }复杂度分析
- 时间复杂度:把字符串从头到尾看一遍,长度是 n,所以是 O(n)。
- 空间复杂度:只用一个计数器,是 O(1)。
- 1