题解 | #字符个数统计#

字符个数统计

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

字符个数统计

描述:编写一个函数,计算字符串中含有的不同字符的个数。字符在ASCII码范围内( 0~127,包括0和127),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次。 例如,对于字符串 abaca而言,有 a、b、c 三种不同的字符,因此输出3 。

输入描述:输入一行没有空格的字符串。

输出描述:输出输入字符串中范围在(0~127,包括0和127)字符的种数。

示例1:输入abc,输出:3

示例2:输入:aaa,输出:1

方法一:

思路分析:本题的实质就是输出字符串不相同字符的个数,可以首先进行一次循环,循环结果为输出不相同的字符串,将字符串的结果存在res中,最后直接返回res的长度即可。

图解

alt

核心代码

str1 = input()
res = ''#存放地址
len1 = len(str1)#循环长度
for i in range(0,len1):
    if str1[i] not in res:
        res = res + str1[i]#添加
print(len(res))#返回长度

时间复杂度:假设字符串长度为n,需要将每一个字符遍历,然后判断是否进行添加,因此时间复杂度为O(n)O(n)

空间复杂度:不需要借助辅助数组,因此空间复杂度为O(1)O(1)

方法二

思路分析

本题也可以首先设定一个str1用于存放输入的数据,因为一共有128个字符,设定一个数组a用于记录字符的次数,若访问过直接记为1,未访问过则使res++(统计字符个数),最终输出res的结果值即可。

核心代码

#include<stdio.h>
#include<string.h>
int main(){
    char str1[1024];//申请一片存储空间,用于存放数据
    scanf("%s",&str1);
    int a[128]={0};//初始化均为0
    int res=0;//存放最终的结果
    for(int i=0;str1[i]!=0;i++){
        if(str1[i]>=0&&str1[i]<128&&a[str1[i]]==0){//标志位为0表示无该字符
            res++;//记录
            a[str1[i]]=1;//对应位置修改为1,表示已经存在该数字
        }
    }
    printf("%d",res);
    return 0;
}

时间复杂度:假设字符串长度为n,需要遍历每一个字符,因此时间复杂度为O(n)O(n)

空间复杂度:需要借助辅助数组,但是数组都是定值,因此空间复杂度为O(1)O(1)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
13730次浏览 132人参与
# AI面会问哪些问题? #
813次浏览 19人参与
# 米连集团26产品管培生项目 #
6871次浏览 223人参与
# 你的实习产出是真实的还是包装的? #
2431次浏览 47人参与
# AI时代,哪个岗位还有“活路” #
2495次浏览 49人参与
# 长得好看会提高面试通过率吗? #
2446次浏览 39人参与
# 巨人网络春招 #
11461次浏览 224人参与
# 你做过最难的笔试是哪家公司 #
1020次浏览 18人参与
# HR最不可信的一句话是__ #
914次浏览 31人参与
# 沪漂/北漂你觉得哪个更苦? #
908次浏览 29人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7898次浏览 43人参与
# XX请雇我工作 #
51120次浏览 171人参与
# 简历中的项目经历要怎么写? #
310766次浏览 4252人参与
# 简历第一个项目做什么 #
31981次浏览 354人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152726次浏览 888人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187495次浏览 1123人参与
# AI时代,哪些岗位最容易被淘汰 #
64398次浏览 857人参与
# 如果重来一次你还会读研吗 #
229937次浏览 2011人参与
# 正在春招的你,也参与了去年秋招吗? #
364032次浏览 2640人参与
# 腾讯音乐求职进展汇总 #
160797次浏览 1114人参与
# 你怎么看待AI面试 #
180527次浏览 1287人参与
# 投格力的你,拿到offer了吗? #
178044次浏览 889人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务