帮写一个程序:计算字符串中含有的不同字符的个数。 字符ASCII码范围内(0~127 ,包括0和127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次 例如,对于字符串abaca而言,有a、b、c三种不同的字符,因此输出3 。 数据范围:1≤n≤500 输入描述:输入一行没有空格的字符串。 输出描述:输出输入字符串中范围在(0~127,包括0和127)字符的种数。
时间: 2024-02-24 20:54:44 浏览: 244
C# 字符串按 ASCII码 排序的方法
可以使用一个长度为128的数组来记录每个字符是否出现过,出现过就标记为1。最后统计数组中1的个数即可。
以下是一个简单的 Python 代码示例:
```python
s = input().strip() # 输入字符串,去掉首尾空格
appeared = [0] * 128 # 初始化数组
count = 0 # 统计不同字符个数
for c in s:
if ord(c) < 128 and ord(c) >= 0 and appeared[ord(c)] == 0:
# 如果字符的ASCII码在0~127范围内,并且之前没有出现过
appeared[ord(c)] = 1 # 标记为出现过
count += 1 # 不同字符个数加1
print(count)
```
需要注意的是,Python 中的字符串默认就是 Unicode 编码,每个字符都可以表示成一个整数,因此可以直接使用 `ord()` 函数将字符转换为对应的整数。
阅读全文