首页 > 试题广场 >

字符个数统计

[编程题]字符个数统计
  • 热度指数:538202 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给定的字符串,统计其中的 \sf{ASCII}0127 范围内的不同字符的个数。

\hspace{15pt}备注:受限于输入,本题实际输入字符集为 \sf{ASCII} 码在 33126 范围内的可见字符。您可以参阅下表获得其详细信息(您可能关注的内容是,这其中不包含空格、换行)。


输入描述:
\hspace{15pt}在一行上输入一个长度 1 \leqq {\rm length}(s) \leqq 500 的字符串 s ,代表给定的字符串。


输出描述:
\hspace{15pt}在一行上输出一个整数,代表给定字符串中 \sf{ASCII}0127 范围内的不同字符的个数。
示例1

输入

[@A8aA].0

输出

8
头像 Lonffrey
发表于 2020-03-10 01:05:35
凡是涉及到去重统计都可以用位图实现。因为每一个不同的数据只需要用二进制的一位存储即可,大大减小了统计所使用的存储空间 import java.util.Scanner; import java.util.BitSet; public class Main { public static 展开全文
头像 aze5888
发表于 2022-01-16 23:10:08
python一行代码解决,然而看着别的语言要写好几行。真不知道应该觉得是在耍流氓还是应该觉得是优越感(手动狗头)? print(len(set(input().replace('\n','')))) 还有小伙伴问我看清楚题了吗?意思是题目要求编写一个函数,好吧,既然如此,就耍赖到底(再次狗头) p 展开全文
头像 挖掘机斯基
发表于 2021-06-24 09:17:03
思路:遍历每个字符,add到HashSet中,使用HashSet完成去重,输出size代码实现: import java.util.HashSet; import java.util.Scanner; public class Main { public static void main 展开全文
头像 JezeChou
发表于 2021-06-07 22:54:21
根据题目要求:1、ASCII码范围在0~1270 <= ord(string) <= 1272、相同字符只计算一次,即去重set(string) 终上,最终代码: def count_character(str): string = ''.join(set(str)) # 去重 展开全文
头像 aaakkk998
发表于 2021-09-18 19:02:52
#include <stdio.h> #include <string.h> #include <stdlib.h> int num=0,len,i,j,k,asc; int tmp[128]={0}; char str[400]; int main() { 展开全文
头像 你敲代码的样子好像蔡徐坤
发表于 2021-09-22 17:56:41
#include<iostream> #include<set> using namespace std; int main() { string text; //存放输入的字符串 getline(cin, text); //获取输入的一行字符串 展开全文
头像 橙子爱吃桃子
发表于 2020-09-03 16:54:34
C++简洁代码: #include<bits/stdc++.h> using namespace std; int main() { string str; cin >> str; unordered_set<char> set; for 展开全文
头像 2306310871耿雨龙
发表于 2022-01-19 12:03:29
#include<stdio.h> int main() { char arr[501] = {'\0'};//存放字符串 int count[128] = {0};//把字符串对应的ascii码作为下标 int sum = 0;//计算不同字符个数 sc 展开全文
头像 银色子弹100
发表于 2020-02-19 17:17:48
#include<stdio.h> #include<string.h> int main() { char c=0,str[128] = { 0 }; int a=0,n=0; while  展开全文
头像 君莫笑swl
发表于 2021-10-13 10:26:24
字符个数统计:C语言解法 运用的是HASH表的思想,因为只有最多只有128种数据,所以只需维护一个大小为128的字符数组,让输入的字符作为数组下标,取出这个下标数组中的字符直接与输入的字符比较(不用for循环从头再查),如果相同则跳过,不同则赋值,让结果++,最后遇到'\n'结束循环,返回结果即可。 展开全文