题解 | #统计字符串中各类型字符的个数#

统计字符串中各类型字符的个数

http://www.nowcoder.com/practice/d5b44c494ed24d8ebb10607c469280e3

题意整理。

  • 输入一行字符串。
  • 统计出其中英文字母、空格、数字和其它字符的个数。

方法一(循环计数)

1.解题思路

  • 遍历输入字符串中所有字符。
  • 如果是英文字母,letter计数加1;如果是数字,digit计数加1;如果是空格,space计数加1;如果以上都不是,other计数加1。最后将对应的计数变量输出。

动图展示: alt

2.代码实现

#include <iostream>
#include <cstring>
using namespace std;

int main() {

    int letter = 0;
    int digit = 0;
    int space = 0;
    int other = 0;
    
    char buf[1024] = {0};
    cin.getline(buf, sizeof(buf));

    //遍历输入字符串中所有字符
    for(int i=0;buf[i]!='\0';i++){
        //如果是英文字母,letter计数加1
        if((buf[i]>='a'&&buf[i]<='z')||(buf[i]>='A'&&buf[i]<='Z')){
            letter++;
        }
        //如果是数字,digit计数加1
        else if(buf[i]>='0'&&buf[i]<='9'){
            digit++;
        }
        //如果是空格,space计数加1
        else if(buf[i]==' '){
            space++;
        }
        //如果以上都不是,other计数加1
        else{
            other++;
        }
    }
    cout << "letter:" << letter << " digit:" << digit << " space:" << space << " other:" << other << endl;

	return 0;
}

3.复杂度分析

  • 时间复杂度:需要遍历字符串中所有字符,所以时间复杂度为O(n)O(n)O(n)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)O(1)
xqxls的题解 文章被收录于专栏

牛客题解

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
Steven267:这不喷回去?花钱是大爷,记住这个道理
点赞 评论 收藏
分享
05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
无能的丈夫:但我觉得这个hr语气没什么问题啊(没有恶意
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务